Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mengubah hala `cetak` Output Python ke Fail?
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
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()
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')
Pengalihan luaran daripada cangkerang juga boleh menjadi pilihan yang berkesan:
./script.py > out.txt
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!