Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah cara saya mengalihkan output arahan luaran ke fail menggunakan modul `subproses` dalam Python?

Bagaimanakah cara saya mengalihkan output arahan luaran ke fail menggunakan modul `subproses` dalam Python?

DDD
Lepaskan: 2024-11-29 00:50:10
asal
766 orang telah melayarinya

How do I redirect the output of an external command to a file using the `subprocess` module in Python?

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
Salin selepas log masuk

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
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan