Apabila melaksanakan arahan shell dalam Python menggunakan modul subproses, adalah penting untuk mengetahui cara mengubah hala output. Satu senario biasa ialah mengubah hala keluaran standard arahan ke dalam fail. Artikel ini menangani keperluan ini dengan meneroka pendekatan Python untuk mencapai pengalihan keluaran.
Dalam coretan kod Python yang disediakan, pengguna cuba menggunakan subprocess.call untuk mengubah hala output perintah kucing kepada fail dengan memisahkan arahan menjadi hujah menggunakan shlex. Walau bagaimanapun, output masih dipaparkan dalam konsol.
Untuk mengubah hala output dengan betul dalam Python 3.5 dan lebih baru, argumen stdout subprocess.run boleh digunakan. Argumen ini menerima pemegang fail terbuka sebagai nilainya, yang mana output akan diarahkan. Berikut ialah contoh:
# Use a list of args instead of a string input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
Dalam kod ini, arahan yang akan dilaksanakan dipecahkan kepada senarai argumen dan output dihalakan semula ke fail bernama 'myfile'. Pernyataan dengan memastikan bahawa fail dibuka, ditulis dan ditutup dengan betul.
Perlu diingat bahawa menggunakan perintah luaran seperti cat untuk tujuan ini adalah tidak perlu. Python mempunyai fungsi terbina dalam untuk membaca dan menulis fail, yang boleh digunakan secara langsung:
with open('myfile', "w") as outfile: outfile.write(open('file1').read()) outfile.write(open('file2').read()) outfile.write(open('file3').read())
Dengan memahami cara mengubah hala output dengan subproses dengan betul atau menggunakan keupayaan pengendalian fail Python, anda boleh menguruskan aliran maklumat dalam skrip Python anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Keluaran dengan Subproses dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!