سؤال

وأنا أعمل على شيء من التعليمات البرمجية التي من المفترض أن تشغيل ملف إكس داخل مجلد على نظام بلدي والحصول على خطأ قائلا ...

وWindowsError: [خطأ 3] يتعذر على النظام العثور على المسار المحدد. وهنا قليلا من رمز:

exepath = os.path.join(EXE file localtion)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]

print 'The python program is running this command:'
print cmd

process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]

ولقد المستوردة فرعي أو جانبي وأيضا من العمليات الفرعية استيراد *

وعلى سبيل المثال، هذه هي الطريقة التي تبدو لي موقع ملف إكس كما في السطر الأول من رمز تبين لي:

 exepath= os.path.join('/Program Files','next folder','next folder','blah.exe')

وأنا شيء مفقود؟

هل كانت مفيدة؟

المحلول

وتحتاج إلى الهروب من الفضاء في المسار القابل للتنفيذ بشكل صحيح

نصائح أخرى

وبالاضافة الى الهروب بشكل صحيح المساحات والشخصيات الأخرى التي يمكن أن تسبب المشاكل (مثل /)، يمكنك أيضا استخدام حرف 8 مسارات DOS القديمة.

وعلى سبيل المثال، برنامج الملفات هي:

وProgra تقريبا 1، والتأكد من إلحاق ~ 1 للشخصيات الماضيين.

وتحرير: هل يمكن إضافة r لجبهة السلسلة، مما يجعلها الخام الحرفي. أن الثعبان قراءة حرف سلسلة عن الحرف. مثل هذا:

وص "\ ملفات البرنامج"

إذا كنت أتذكر بشكل صحيح، لا تحتاج إلى تعبير مسار الملف executuable الخاص بك، مثلك في السطر الثاني.

وتحرير: حسنا، أمسك مجرد قريب يندوز مربع واختبار هذا. Popen يعمل نفسها بغض النظر نقلت المسار أو لا. حتى هذه ليست مشكلة.

وAFAIK، ليست هناك حاجة لتطويق المسار في علامات اقتباس ما لم تشارك cmd.exe في تشغيل البرنامج.

وبالإضافة إلى ذلك، قد ترغب في استخدام البيئة ProgramFiles متغير لمعرفة الموقع الفعلي "ملفات البرامج" لأن ذلك يعتمد على الإعدادات الإقليمية ويمكن أيضا أن أنب باستخدام TweakUI من.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top