Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengalihkan Keluaran Cetakan Python ke Fail Teks dengan betul?

Bagaimana untuk Mengalihkan Keluaran Cetakan Python ke Fail Teks dengan betul?

Susan Sarandon
Susan Sarandonasal
2024-11-27 19:43:14240semak imbas

How to Properly Redirect Python Print Output to a Text File?

Ubah hala Output Python ke Fail Teks

Apabila cuba mengubah hala output cetakan ke fail teks menggunakan Python, anda mungkin menghadapi kesukaran jika pilihan anda kaedah tidak menghasilkan hasil yang diingini.

Masalah Penerangan

Kod berikut gagal mengubah hala output ke fail menggunakan sys.stdout:

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

path= '/home/xxx/nearline/bamfiles'
bamfiles = glob.glob(path + '/*.bam')

for bamfile in bamfiles:
    filename = bamfile.split('/')[-1]
    print 'Filename:', filename

Penyelesaian

Sebaliknya sys .stdout, pertimbangkan untuk menggunakan objek fail untuk percetakan:

with open('out.txt', 'w') as f:
    print('Filename:', filename, file=f)  # Python 3.x

Penyelesaian Alternatif

  • Gunakan pengurus konteks untuk mengubah hala output:
from contextlib import redirect_stdout

with open('out.txt', 'w') as f:
    with redirect_stdout(f):
        print('data')
  • Ubah hala output secara luaran daripada shell:
./script.py > out.txt

Pertimbangan Tambahan

  • Pastikan fungsi glob mencari fail yang dimaksudkan.
  • Memanipulasi dengan betul laluan fail menggunakan os.path.join dan os.path.basename.

Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Keluaran Cetakan Python ke Fail Teks dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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