Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Melaksanakan Program dengan Ruang dalam Laluan dari Python?
Cara Melaksanakan Program daripada Python
Python menyediakan cara yang mudah untuk melaksanakan program luaran menggunakan fungsi os.system(). Walau bagaimanapun, fungsi ini boleh gagal apabila laluan ke program mengandungi ruang.
Penyelesaian: Menggunakan subprocess.call()
Fungsi subprocess.call() ialah alternatif kepada os.system() yang mengelak daripada memetik isu yang disebabkan oleh ruang dalam laluan. Ia memerlukan senarai argumen dan bukannya rentetan tunggal, memudahkan persempadanan argumen.
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
Dalam contoh ini, Notepad.exe akan dilaksanakan dengan parameter C:\test.txt. Fungsi subprocess.call() akan menunggu sehingga program selesai.
Pilihan Lain
1. Escaping Spaces
Melampirkan laluan dalam petikan berganda boleh melepaskan ruang. Walau bagaimanapun, kaedah ini boleh menjadi menyusahkan apabila menambah berbilang parameter.
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"')</code>
2. Menggunakan Shell=True dengan os.system()
Setting shell=True membenarkan penterjemah arahan sistem pengendalian mengendalikan konvensyen petikan. Walau bagaimanapun, kaedah ini datang dengan risiko keselamatan.
<code class="python">os.system("C:\Temp\a b c\Notepad.exe C:\test.txt", shell=True)</code>
Kesimpulan
subprocess.call() ialah kaedah pilihan untuk melaksanakan program daripada Python apabila laluan mengandungi ruang. Ia menyediakan penyelesaian yang mudah dan selamat.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Program dengan Ruang dalam Laluan dari Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!