मेरे पास एक पायथन स्क्रिप्ट है जिसे किसी बाहरी कार्यक्रम को निष्पादित करने की आवश्यकता है, लेकिन किसी कारण से विफल हो जाता है।
अगर मेरे पास निम्न स्क्रिप्ट है:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
तब यह निम्न त्रुटि के साथ विफल हो जाता है:
'C: \ Temp \' एक आंतरिक या बाहरी कमांड, ऑपरेबल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता प्राप्त नहीं है।
यदि मैं उद्धरण के साथ कार्यक्रम से बचता हूं:
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();
स्वैप किए गए सिंगल / डबल कोट्स को नोट करें।
नोटपैड के पैरामीटर के साथ या उसके बिना, यह त्रुटि संदेश के साथ विफल हो जाता है
फ़ाइल नाम, निर्देशिका नाम या वॉल्यूम लेबल सिंटैक्स गलत है।
"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')