سؤال

هل هناك طريقة لتحديد دليل القيادة في بيثون subprocess.Popen()?

علي سبيل المثال:

Popen('c:\mytool\tool.exe', workingdir='d:\test\local')

Script My Python موجود في C:\programs\python

هو ممكن لتشغيل C:\mytool\tool.exe في الدليل D:\test\local?

كيف يمكنني تعيين دليل العمل لعملية فرعية؟

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

المحلول

subprocess.Popen يأخذ cwd جدال لتعيين دليل العمل الحالي؛ سوف ترغب أيضا في الهروب من خطاكي الخلفية الخاصة بك ('d:\\test\\local')، او استعمل r'd:\test\local' بحيث لا يتم تفسير الخلفية على أنها تسلسل الهروب من قبل بيثون. الطريقة التي لديك كتبها، \t سيتم ترجمة الجزء إلى التبويب.

لذلك، يجب أن تبدو خطك الجديد:

subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')

لاستخدام مسار البرنامج النصي Python الخاص بك ك CWD، import os وتحديد CWD باستخدام هذا:

os.path.dirname(os.path.realpath(__file__)) 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top