Hướng dẫn python print replace same line - python in thay thế cùng một dòng
Bạn có thể sử dụng "Return" -Character 0 để trở về đầu dòng. Trong Python 2.x, bạn sẽ phải sử dụng 1 và 2 thay vì 3. Show
Trong Python 3.3, bạn có thể sử dụng hàm 3, với các tham số 5 và 6:
Tuy nhiên, lưu ý rằng theo cách này bạn chỉ có thể thay thế dòng cuối cùng trên màn hình. Nếu bạn muốn có một chiếc đồng hồ "trực tiếp" trong một giao diện người dùng điều khiển phức tạp hơn, bạn nên kiểm tra 7. Tóm tắt: Cách đơn giản nhất để ghi đè lên bản in trước đó thành stdout là đặt ký tự trả về vận chuyển ( 8) character within the print statement as 9. This returns the next stdout line to the beginning of the line without proceeding to the next line.
Xây dựng vấn đềVideo hướng dẫnHow will you overwrite the previous print/output to stdout in Python? Phương pháp 1: Sử dụng ký tự Return Return (‘\ r,)Let’s say you have the following snippet, which prints the output as shown below: import time for i in range(10): if i % 2 == 0: print(i) time.sleep(2) Output: Phương pháp 2: Dòng rõ và in bằng trình tự thoát ANSIWhat we want to do is instead of printing each output in a newline, we want to replace the previous output value and overwrite it with the new output value on the same line, as shown below. Phương pháp 3: Sử dụng nhân vật \ \ b ”Video hướng dẫnPhương pháp 1: Sử dụng ký tự Return Return (‘\ r,) Phương pháp 2: Dòng rõ và in bằng trình tự thoát ANSIRecommended Read: [FIXED] Carriage return Not Working with Print in VS Code Phương pháp 1: Sử dụng ký tự Return Return (‘\ r,)Phương pháp 2: Dòng rõ và in bằng trình tự thoát ANSIThe simplest solution to the given problem is to use the carriage return (‘ 0‘) character within your print statement to return the stdout to the start of the same print line without advancing to the next line. This leads to the next print statement overwriting the previous print statement.Phương pháp 3: Sử dụng nhân vật \ \ b ”Note: Read here to learn more about the carriage return escape character. Code: import time for i in range(10): if i % 2 == 0: print(i, end="\r") time.sleep(2) Output: Điều đó dễ dàng! Có phải là nó không? Thật không may, cách tiếp cận này không hoàn toàn không thể ngu ngốc. Hãy để xem những gì xảy ra khi chúng ta thực hiện đoạn trích sau: import time li = ['start', 'Processing result'] for i in range(len(li)): print(li[i], end='\r') time.sleep(2) print('Terminate') Output: ____ ________ 21 không thể xóa sạch hoàn toàn đầu ra trước đó. Do đó, đầu ra cuối cùng là sai. Vì chúng tôi đang thực hiện từng đầu ra được tạo bởi một câu lệnh in trên đầu ra trước đó, nên không thể hiển thị đầu ra đúng cách trên cùng một dòng nếu đầu ra sau có độ dài ngắn hơn đầu ra trước đó.on top of the previous output, it is not possible to display an output properly on the same line if the following output has a shorter length than the output before. Khắc phục: Để khắc phục sự cố trên, thay vì chỉ cần ghi đè đầu ra, chúng ta phải xóa đầu ra trước đó trước khi hiển thị đầu ra tiếp theo. Điều này có thể được thực hiện với sự trợ giúp của chuỗi ANSI sau: Hồi \ x1b [2K.To fix the above problem, instead of simply overwriting the output, we must clear the previous output before displaying the next output. This can be done with the help of the following ANSI sequence: “\x1b[2K“. Code: import time li = ['start', 'Processing result'] for i in range(len(li)): print(li[i], end='\r') time.sleep(2) print(end='\x1b[2K') # ANSI sequence to clear the line where the cursor is located print('Terminate') Output: Phương pháp 2: Dòng rõ và in bằng trình tự thoát ANSICách tiếp cận: Ý tưởng ở đây là sử dụng một câu lệnh in thêm thay vì thay đổi tham số 5 parameter of the print statement that is used to display the output. The extra print statement is used to move the cursor back to the previous line where the output was printed and then clear it out with the help of
ANSI escape sequences. Explanation:
Code: import time UP = '\033[1A' CLEAR = '\x1b[2K' for i in range(10): if i % 2 == 0: print(i) time.sleep(2) print(UP, end=CLEAR) Output: Thảo luận: Mặc dù mã này có thể trông phức tạp hơn một chút so với cách tiếp cận trước đó, nhưng nó đi kèm với một lợi thế lớn của sự gọn gàng của đầu ra. Bạn không phải lo lắng về độ dài của đầu ra trước đó. Ngoài ra, con trỏ không trực quan cản trở đầu ra được hiển thị.Though this code might look a little more complex than the previous approach, it comes with a major advantage of the neatness of output. You don’t have to worry about the length of the previous output. Also, the cursor does not visually hinder the output being displayed. Ở đây, một hướng dẫn tiện dụng để thoát khỏi các chuỗi liên quan đến các chuyển động con trỏ:
Phương pháp 3: Sử dụng nhân vật \ \ b ”Một cách khác để ghi đè dòng đầu ra trước đó là sử dụng ký tự backspace (\ \ b,) và ghi vào đầu ra tiêu chuẩn.\b“) and write to the standard output. Code: import time import sys for i in range(10): if i % 2 == 0: sys.stdout.write(str(i)) time.sleep(1) sys.stdout.write('\b') sys.stdout.flush() Output: THẬN TRỌNG: Đảm bảo rằng bạn xả đúng bộ đệm như được thực hiện trong đoạn trích trên. Nếu không, bạn có thể thấy rằng chỉ có kết quả cuối cùng được hiển thị ở cuối tập lệnh.Ensure that you properly flush the buffer as done in the above snippet. Otherwise, you might see that only the last result is displayed at the end of the script. Tiền thưởng đọc trước 👇 Vận chuyển trở lại (\ r) trong Python là gì?Nói một cách đơn giản, vận chuyển trở lại là một nhân vật trốn thoát giống như 3. Trả về vận chuyển được ký hiệu là 0 và về cơ bản nó được sử dụng để chuyển con trỏ sang đầu một dòng hoặc chuỗi thay vì cho phép nó chuyển sang dòng tiếp theo.carriage return is an escape character just like 3. Carriage return is denoted as 0 and it is basically used to shift the cursor to the beginning of a line or string instead of allowing it to move on to the next line.Bất cứ khi nào bạn sử dụng ký tự thoát trở lại vận chuyển '\ r', nội dung xuất hiện sau khi \ r sẽ xuất hiện trên đầu dòng của bạn và sẽ tiếp tục thay thế các ký tự của chuỗi trước đó cho đến khi nó chiếm tất cả các nội dung còn lại sau 0 trong chuỗi đó.‘\r’, the content that comes after the \r will appear on top of your line and will keep replacing the
characters of the previous string one by one until it occupies all the contents left after the 0 in that string.Example: li = ['One', 'Two', 'Three'] for i in range(len(li)): print(li[i], end='\r') # OUTPUT-->Three Sự kết luậnĐể tổng hợp mọi thứ, cách dễ dàng nhất để ghi đè lên bản in trước đó là sử dụng ký tự return ____10 trong câu lệnh in của bạn bằng tham số cuối. Để đảm bảo rằng đầu ra trước đó bị xóa hoàn toàn trước khi in đầu ra mới, bạn có thể sử dụng trình tự thoát ANSI 7.Tôi hy vọng hướng dẫn này đã giúp bạn. Ở đây, một cách thú vị khác đọc mà bạn có thể thấy hữu ích: Python in một danh sách dòngPython Print One Line List
Tôi là một blogger Python chuyên nghiệp và người tạo nội dung. Tôi đã xuất bản nhiều bài báo và tạo ra các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc như một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Mạng. Bạn có thể liên lạc với tôi @: Upwork LinkedIn Làm thế nào để bạn ghi đè một dòng in trong Python?Tóm tắt: Cách đơn giản nhất để ghi đè lên bản in trước đó thành stdout là đặt ký tự trả về vận chuyển ('\ r') trong câu lệnh in dưới dạng in (chuỗi, end = "\ r"). Điều này trả lại dòng stdout tiếp theo cho đầu dòng mà không cần tiến hành dòng tiếp theo.set the carriage return ( '\r' ) character within the print statement as print(string, end = "\r") . This returns the next stdout line to the beginning of the line without proceeding to the next line.
Làm thế nào để bạn cập nhật cùng một câu lệnh in trong Python?Sử dụng Trở lại vận chuyển "\ r" để in trên cùng một dòng Sử dụng in cú pháp (chuỗi, end = "\ r") để làm cho dòng stdout tiếp theo bắt đầu ở đầu dòng hiện tại.Do đó, chuỗi được ghi đè bởi câu lệnh in () sau.
Use the syntax print(string, end = "\r") to make the next stdout line begin at the beginning of the current line. As a result, string is overwritten by the following print() statement.
Làm cách nào để in trên cùng một dòng với các câu lệnh khác nhau?Sửa đổi phương thức print () Để in trên cùng một dòng Phương thức in có thêm một tham số bổ sung = Tiết ra để giữ con trỏ trên cùng một dòng.Tham số cuối có thể lấy các giá trị nhất định như không gian hoặc một số dấu trong các trích dẫn kép để tách các phần tử được in trong cùng một dòng.
The print method takes an extra parameter end=” “ to keep the pointer on the same line. The end parameter can take certain values such as a space or some sign in the double quotes to separate the elements printed in the same line.
Làm cách nào để giữ văn bản trên cùng một dòng trong Python?Nếu bạn muốn in văn bản của mình trên cùng một dòng trong Python 2, bạn nên sử dụng dấu phẩy ở cuối câu lệnh in của bạn.use a comma at the end of your print statement. |