Mengubah hala Output dengan Subproses dalam Python
Dalam Python, modul subproses membenarkan penggunaan arahan luaran. Apabila melaksanakan arahan, selalunya wajar untuk mengubah hala output ke fail.
Pertimbangkan arahan baris arahan berikut:
cat file1 file2 file3 > myfile
Arahan ini menggabungkan fail fail1, fail2 dan fail3 dan mengubah hala output ke fail myfile. Untuk mencapai kefungsian serupa dalam Python, anda boleh mencuba perkara berikut pada mulanya:
import subprocess, shlex my_cmd = 'cat file1 file2 file3 > myfile' args = shlex.split(my_cmd) subprocess.call(args) # Spits output in the window from which Python was called
Walau bagaimanapun, pendekatan ini tidak mengubah hala output ke fail. Sebaliknya, ia mencetaknya ke tetingkap tempat program Python digunakan.
Penyelesaian Python 3.5
Untuk mengubah hala output dengan betul, sediakan pemegang fail terbuka untuk stdout argumen dalam subprocess.run:
input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
Penyelesaian ini secara berkesan mengubah hala output ke fail myfile tanpa keperluan untuk arahan luaran seperti kucing.
Atas ialah kandungan terperinci Bagaimanakah cara saya mengalihkan output arahan luaran ke fail menggunakan modul `subproses` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!