আমার কাছে পাইথন স্ক্রিপ্ট রয়েছে যার একটি বাহ্যিক প্রোগ্রাম চালানো দরকার তবে কোনও কারণে ব্যর্থ হয়।
আমার যদি নিম্নলিখিত স্ক্রিপ্ট থাকে:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
তারপরে এটি নিম্নলিখিত ত্রুটির সাথে ব্যর্থ হয়:
'সি: \ টেম্প \ এ' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়।
আমি যদি উদ্ধৃতি সহ প্রোগ্রামটি থেকে পালাতে পারি:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
তারপরে এটি কাজ করে। তবে আমি যদি কোনও পরামিতি যুক্ত করি তবে এটি আবার কাজ করা বন্ধ করে দেয়:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
কোনও প্রোগ্রাম কার্যকর করার এবং এটি শেষ হওয়ার জন্য অপেক্ষা করার সঠিক উপায় কী? আমার এটি থেকে আউটপুট পড়ার দরকার নেই, কারণ এটি একটি ভিজ্যুয়াল প্রোগ্রাম যা কোনও কাজ করে এবং তারপরেই বেরিয়ে আসে, তবে এটি শেষ হওয়ার জন্য আমাকে অপেক্ষা করতে হবে।
আরও মনে রাখবেন, প্রোগ্রামটিকে একটি ফাঁকা ফাঁকা পথে নিয়ে যাওয়া কোনও বিকল্প নয়।
এটিও কাজ করে না:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
অদলবদল একক / ডাবল উদ্ধৃতি নোট করুন।
এখানে নোটপ্যাডের প্যারামিটার সহ বা ছাড়াই এটি ত্রুটি বার্তায় ব্যর্থ হয়
ফাইলের নাম, ডিরেক্টরি নাম, বা ভলিউম লেবেল বাক্য গঠন ভুল is
"C:\Program Files\GDAL\gdal_translate.exe" -ot byte -of GTIFF -scale -co PHOTOMETRIC=CMYK "cmyk-16.tif" "cmyk-8_out.tif"
। পাইথন, এটা হয়ে: ["C:\\Program Files\\GDAL\\gdal_translate.exe", "-ot", "byte", "-scale", "-co", "PHOTOMETRIC=CMYK", "input_cmyk-16.tif", "output_cmyk-8.tif"]
।
os.system(r'C:\temp\"a b c"\Notepad.exe')
বা এটি:os.system('C:\\temp\\"a b c"\\Notepad.exe')