Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengalihkan Keluaran Cetakan Python ke Fail dan Mengapa Ia Mungkin Gagal?

Bagaimanakah Saya Boleh Mengalihkan Keluaran Cetakan Python ke Fail dan Mengapa Ia Mungkin Gagal?

Barbara Streisand
Lepaskan: 2024-11-28 21:28:12
asal
486 orang telah melayarinya

How Can I Redirect Python's Print Output to a File and Why Might It Fail?

Ubah Hala Keluar untuk Kod Python

Pertanyaan berpusat di sekitar mengubah hala kenyataan cetakan ke fail teks yang ditetapkan menggunakan Python. Walaupun menggunakan teknik sys.stdout, fail sasaran kekal kosong. Artikel ini bertujuan untuk meneroka isu dan menyediakan penyelesaian alternatif.

Menggunakan Objek Fail untuk Output

Pendekatan paling mudah melibatkan penulisan 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

Ubah hala Standard Output

Sebagai alternatif, ubah hala stdout boleh dicapai dengan kod berikut:

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

Menggunakan Pengurus Konteks Perpustakaan Standard

Untuk Python 3.4 dan ke atas, pengurus konteks khusus boleh memudahkan perkara ini proses:

from contextlib import redirect_stdout

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

Pengalihan Output Luaran

Mengubah hala output secara luaran melalui cangkerang ialah satu lagi pilihan yang berdaya maju:

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

Tambahan Pertimbangan

  • Sahkan ketersediaan bamfiles dalam laluan yang ditentukan menggunakan glob.glob.
  • Gunakan os.path.join dan os.path.basename untuk manipulasi laluan dan nama fail yang cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalihkan Keluaran Cetakan Python ke Fail dan Mengapa Ia Mungkin Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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