Escape Characters for os.system() Calls
Apabila menggunakan os.system(), memastikan pelarian nama fail dan argumen dengan betul adalah penting . Berikut ialah penyelesaian yang menangani isu ini dan menyediakan sokongan untuk berbilang sistem pengendalian dan cengkerang, terutamanya bash.
Menggunakan Petikan
Pendekatan yang paling mudah dan selamat adalah dengan menyertakan arahan dan hujah dalam petikan berganda atau tunggal:
os.system("my_command 'argument with spaces'")
Meloloskan diri Menggunakan shlex atau paip
Jika tanda petikan tidak sesuai, modul shlex atau paip boleh digunakan untuk melarikan diri aksara:
Contoh Penggunaan
Katakan anda mahu menjalankan arahan "cat input.txt | grep 'find something' | sort > output.txt" menggunakan os.system(). Menggunakan shlex.quote(), kodnya ialah:
import shlex cmd = "cat {} | grep '{}' | sort > {}".format( shlex.quote("input.txt"), shlex.quote("find something"), shlex.quote("output.txt"), ) os.system(cmd)
Nota tentang Keselamatan
Sementara os.system() menawarkan cara yang cepat dan langsung untuk melaksanakan perintah sistem, adalah penting untuk mempertimbangkan potensi kelemahan keselamatan. Pastikan input yang dijana pengguna atau tidak dipercayai disahkan dan dibersihkan dengan betul sebelum menggunakan os.system().
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri dengan Selamat Watak untuk Panggilan os.system()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!