Hướng dẫn python print append to previous line - python print nối vào dòng trước

Tôi đang thực hiện xử lý thư mục/tệp trong Python. Để thông báo cho người dùng, tôi xuất một số tin nhắn vào bảng điều khiển. Những thông điệp này trông giống với điều này:

Creating folders...
DONE
Creating files...
DONE
All done!

Điều này là tốt nếu quá trình này ngắn, nhưng trong trường hợp của tôi, quá trình (và tin nhắn) không ngắn. Tôi không muốn lãng phí các dòng mới cho các tin nhắn thành công/thất bại. Tôi muốn chúng trông như thế này:

Creating folders... DONE
Creating files... DONE
All done!

Bí quyết là đã có các chuỗi "hoàn thành" nối vào dòng trước khi hoàn thành nhiệm vụ cụ thể. Vì vậy, đầu tiên tôi chỉ thấy:

Creating folders...

Và khi nhiệm vụ được thực hiện, nó sẽ trở thành:

Creating folders... DONE

và chuyển sang nhiệm vụ tiếp theo. Tôi đã thử không kết thúc các dòng, nhưng nó không hoạt động:

print("Creating folders... ", end="")
time.sleep(2) # fake process
print("DONE")
time.sleep(1)
print("Creating files... ", end="")
time.sleep(2)
print("DONE")

Vâng, nó hoạt động, nhưng cả hai chuỗi (nhiệm vụ ... kết quả) hiển thị cùng một lúc (sau khi thực hiện nhiệm vụ). Tôi không thấy quá trình chuyển đổi mà tôi đã đề cập ở trên.

Tôi đã tìm thấy một cách khác, chuyển sang đầu dòng và thay thế chuỗi:

print("Creating folders... ", end="\r")
time.sleep(2) # fake process
print("Creating folders... DONE")
time.sleep(1)
print("Creating files... ", end="\r")
time.sleep(2)
print("Creating files... DONE")

Điều này dường như tạo ra hiệu ứng mong muốn, nhưng tôi đang lặp lại và mở rộng tin nhắn trước đó. Tôi chỉ cần xuất kết quả, không lặp lại thông báo tác vụ một lần nữa.

Có một giải pháp đơn giản hơn cho điều này?


Ngoài ra, tại sao phương pháp đầu tiên tôi đã thử công việc? Tôi in một văn bản, và không kết thúc dòng. Sau một thời gian, tôi thêm một văn bản khác và điều này được thêm vào dòng trước, vì không có dòng phá vỡ. Vì có sự khác biệt về thời gian giữa hai bản in, tôi sẽ thấy quá trình chuyển đổi, nhưng tôi thì không. Họ được in cùng một lúc. Tại sao vậy?

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Nhân vật dòng mới trong Python là

Creating folders... DONE
Creating files... DONE
All done!
1. Nó được sử dụng để chỉ ra sự kết thúc của một dòng văn bản.The new line character in Python is used to mark the end of a line and the beginning of a new line. Knowing how to use it is essential if you want to print output to the console and work with files.

Bạn có thể in các chuỗi mà không cần thêm một dòng mới với

Creating folders...
5, trong đó
Creating folders...
6 là ký tự sẽ được sử dụng để tách các dòng.

  • Tôi thực sự hy vọng rằng bạn thích bài viết của tôi và thấy nó hữu ích. Bây giờ bạn có thể làm việc với nhân vật dòng mới trong Python.
  • Kiểm tra các khóa học trực tuyến của tôi. Theo dõi tôi trên Twitter. ⭐
  • Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Chào mừng! Nhân vật dòng mới trong Python được sử dụng để đánh dấu phần cuối của một dòng và bắt đầu một dòng mới. Biết cách sử dụng nó là điều cần thiết nếu bạn muốn in đầu ra vào bảng điều khiển và làm việc với các tệp.

Trong bài viết này, bạn sẽ học:

Làm thế nào để xác định ký tự dòng mới trong Python.

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Làm thế nào các ký tự dòng mới có thể được sử dụng trong các chuỗi và báo cáo in.

  • Cách bạn có thể viết các câu lệnh in không thêm ký tự dòng mới vào cuối chuỗi.
  • Hãy bắt đầu nào! ✨

🔹 Nhân vật dòng mới

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Nhân vật dòng mới trong Python là:f-strings:

>>> print(f"Hello\nWorld!")

Nó được làm bằng hai ký tự:

Một dấu gạch chéo ngược.

Như thế này:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Điều này xảy ra bởi vì, theo tài liệu Python:

Giá trị mặc định của tham số end của hàm

Creating folders... DONE
Creating files... DONE
All done!
0 tích hợp là
Creating folders... DONE
Creating files... DONE
All done!
1, do đó, một ký tự dòng mới được thêm vào chuỗi.

Mẹo: ỨNG DỤNG có nghĩa là "Thêm vào cuối". Append means "add to the end".

Đây là định nghĩa chức năng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Lưu ý rằng giá trị của end

Creating folders... DONE
Creating files... DONE
All done!
1, vì vậy điều này sẽ được thêm vào cuối chuỗi.

Nếu bạn chỉ sử dụng một câu lệnh in, bạn sẽ không nhận thấy điều này vì chỉ có một dòng sẽ được in:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Nhưng nếu bạn sử dụng một số câu lệnh in hết trong tập lệnh Python:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Đầu ra sẽ được in bằng các dòng riêng biệt vì

Creating folders... DONE
Creating files... DONE
All done!
1 đã được thêm "phía sau hậu trường" vào cuối mỗi dòng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Chúng ta có thể thay đổi hành vi mặc định này bằng cách tùy chỉnh giá trị của tham số end của hàm

Creating folders... DONE
Creating files... DONE
All done!
0.

Nếu chúng ta sử dụng giá trị mặc định trong ví dụ này:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Chúng tôi thấy đầu ra được in thành hai dòng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Nhưng nếu chúng ta tùy chỉnh giá trị của end và đặt nó thành

Creating folders... DONE
Creating files... DONE
All done!
8

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Một không gian sẽ được thêm vào cuối chuỗi thay vì ký tự dòng mới

Creating folders... DONE
Creating files... DONE
All done!
1, do đó, đầu ra của hai câu lệnh in sẽ được hiển thị trong cùng một dòng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Bạn có thể sử dụng điều này để in một chuỗi các giá trị trong một dòng, như trong ví dụ này:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Đầu ra là:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Mẹo: Chúng tôi thêm một câu lệnh có điều kiện để đảm bảo rằng dấu phẩy sẽ không được thêm vào số cuối cùng của chuỗi. We add a conditional statement to make sure that the comma will not be added to the last number of the sequence.

Tương tự, chúng ta có thể sử dụng điều này để in các giá trị của một điều không thể sử dụng được trong cùng một dòng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Đầu ra là:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Mẹo: Chúng tôi thêm một câu lệnh có điều kiện để đảm bảo rằng dấu phẩy sẽ không được thêm vào số cuối cùng của chuỗi.

Tương tự, chúng ta có thể sử dụng điều này để in các giá trị của một điều không thể sử dụng được trong cùng một dòng:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

🔸 ký tự dòng mới trong các tệp

with open("names.txt", "r") as f:
    print(f.readlines())

Đầu ra là:

Hướng dẫn python print append to previous line - python print nối vào dòng trước

Mẹo: Chúng tôi thêm một câu lệnh có điều kiện để đảm bảo rằng dấu phẩy sẽ không được thêm vào số cuối cùng của chuỗi.

Tương tự, chúng ta có thể sử dụng điều này để in các giá trị của một điều không thể sử dụng được trong cùng một dòng:Notice that only the last line of the file doesn't end with a new line character.

🔸 ký tự dòng mới trong các tệp

  • Ký tự dòng mới
    Creating folders... DONE
    Creating files... DONE
    All done!
    
    1 cũng được tìm thấy trong các tệp, nhưng nó là "ẩn". Khi bạn thấy một dòng mới trong một tệp văn bản, một ký tự dòng mới
    Creating folders... DONE
    Creating files... DONE
    All done!
    
    1 đã được chèn vào.
  • Bạn có thể kiểm tra điều này bằng cách đọc tệp bằng
    Creating folders...
    
    2, như thế này:

Như bạn có thể thấy, ba dòng đầu tiên của tệp văn bản kết thúc với một nhân vật

Creating folders... DONE
Creating files... DONE
All done!
1 mới hoạt động "phía sau hậu trường".Now you can work with the new line character in Python.

Mẹo: Lưu ý rằng chỉ dòng cuối cùng của tệp không kết thúc bằng ký tự dòng mới.



Tóm tắt