Mengatasi Output Cetakan Sebelumnya pada Baris Yang Sama
Dalam pengaturcaraan, adalah perkara biasa untuk menghadapi situasi di mana anda perlu mengemas kini nilai sedia ada yang dipaparkan pada keluaran standard (stdout) tanpa menambah baris baharu. Pertimbangkan kod Python berikut:
for x in range(10): print(x)
Kod ini mengeluarkan nombor 1 hingga 10 pada baris berasingan. Untuk menulis ganti nilai sebelumnya dan menggantikannya dengan nilai baharu pada baris yang sama, anda boleh menggunakan teknik berikut:
Versi Mudah:
Gunakan carriage return ( 'r') watak untuk kembali ke permulaan baris tanpa mara ke baris seterusnya.
Python 3:
for x in range(10): print(x, end='\r') print()
Python 2.7 Serasi Hadapan:
from __future__ import print_function for x in range(10): print(x, end='\r') print()
Python 2.7:
for x in range(10): print '{}\r'.format(x), print
Python 2.0-2.6:
for x in range(10): print '{0}\r'.format(x), print
Dalam contoh ini, koma di belakang selepas pernyataan cetakan menekan baris baharu. Penyata cetakan akhir mara ke baris seterusnya, memastikan gesaan anda tidak menimpa output anda.
Pembersihan Talian:
Jika anda tidak dapat menjamin bahawa baris baharu daripada teks tidak lebih pendek daripada baris yang sedia ada, anda boleh menggunakan jujukan melarikan diri "jelas ke hujung baris" 'x1b[1K' ('x1b' = ESC):
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
Balut Baris Panjang:
Kaedah yang dinyatakan di atas menganggap bahawa anda tidak menulis melebihi panjang baris. Pulangan gerabak hanya kembali ke permulaan baris semasa. Oleh itu, jika output anda melebihi panjang baris, anda hanya akan memadamkan baris terakhir.
Untuk mengurangkan isu ini dan menghalang kursor daripada membalut ke baris seterusnya, anda boleh melumpuhkan pembalut baris:
print('\x1b[7l', end='') # Disable line wrapping print('\x1b[7h', end='') # Re-enable line wrapping
Sila ambil perhatian bahawa anda mesti mendayakan semula pembalut baris secara manual pada penghujung blok kod untuk mengelak daripada meninggalkan terminal dalam keadaan rosak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengganti Output Cetakan Sebelumnya pada Baris yang Sama dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!