Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melaksanakan Program dengan Ruang dalam Laluan dari Python?

Bagaimana untuk Melaksanakan Program dengan Ruang dalam Laluan dari Python?

Susan Sarandon
Susan Sarandonasal
2024-11-03 15:08:03462semak imbas

How to Execute a Program with Spaces in the Path from 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn