Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh mengubah hala `cetak` Output Python ke Fail?

Bagaimanakah saya boleh mengubah hala `cetak` Output Python ke Fail?

Susan Sarandon
Lepaskan: 2024-12-01 07:39:11
asal
165 orang telah melayarinya

How Can I Redirect Python's `print` Output to a File?

Ubah hala Output 'cetak' ke Fail

Apabila cuba mengubah hala output 'cetak' ke fail teks dalam Python, pengguna boleh menghadapi cabaran jika kod mereka tidak berkelakuan seperti yang diharapkan. Dalam kes sedemikian, menggunakan sys.stdout untuk mengubah hala output boleh membawa kepada hasil yang tidak dijangka.

Pendekatan yang mudah dan disyorkan ialah mencetak terus ke objek fail:

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x
    # print >> f, 'Filename:', filename   # Python 2.x
Salin selepas log masuk

Sebagai alternatif, untuk skrip sekali sahaja, mengubah hala 'sys.stdout' boleh sesuai:

import sys

orig_stdout = sys.stdout
f = open('out.txt', 'w')
sys.stdout = f

for i in range(2):
    print('i = ', i)

sys.stdout = orig_stdout
f.close()
Salin selepas log masuk

Sejak Python 3.4, perpustakaan standard menyediakan pengurus konteks yang memudahkan tugas ini:

from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
Salin selepas log masuk

Pengalihan luaran daripada cangkerang juga boleh menjadi pilihan yang berkesan:

./script.py > out.txt
Salin selepas log masuk

Untuk menyelesaikan masalah yang berpotensi, pertimbangkan menyemak nama fail pertama dalam skrip, yang mungkin tidak dimulakan. Selain itu, mengesahkan bahawa folder itu wujud dan mencetak 'bamfiles' boleh membantu mengenal pasti sebarang masalah dengan penemuan fail. Menggunakan 'os.path.join' dan 'os.path.basename' untuk manipulasi laluan dan nama fail disyorkan untuk kejelasan kod yang optimum.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah hala `cetak` Output Python ke Fail?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan