Cách đọc ký tự trong python
Giả sử, đối với bài viết này, bạn được yêu cầu viết mã Python để đọc một tệp và hiển thị một (1) ký tự từ tệp đó mỗi lần lặp lại cho đến khi tất cả nội dung được đọc trong Show 💬 câu hỏi. Làm thế nào bạn sẽ viết mã này? Chà, nhiệm vụ này có thể được hoàn thành bằng cách sử dụng một trong các tùy chọn sau
Phương pháp 1. Sử dụng open(), read(), iter() và lambdaPhương pháp này sử dụng from time import sleep with open('secret_word.txt1', 'r') as fp: for letter in iter(lambda: fp.read(1), ''): print(letter) sleep(2) Dòng đầu tiên trong đoạn mã trên nhập hàm with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')3 từ thư viện with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')4. Hàm này trì hoãn việc thực thi mã cho đến khi hết thời gian xác định ( with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')5) Dòng sau mở tệp văn bản phẳng, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')6, ở chế độ đọc ( with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')7) và lưu nó dưới dạng Đối tượng tệp, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')8. Điều này cho phép chúng tôi truy cập và thao tác với tệp đã nói. Nếu xuất ra thiết bị đầu cuối, một Đối tượng tệp tương tự như bên dưới sẽ hiển thị with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')9 Tiếp theo, một vòng lặp from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)4 được khởi tạo. Mã này lặp qua từng ký tự trong tệp bằng cách gọi hàm iter() và chuyển cho nó một (1) đối số, hàm ẩn danh, một lambda . Hàm lambda sử dụng read() để đọc từng ký tự mộtKết quả của mỗi lần lặp được xuất ra thiết bị đầu cuối. Sau đó, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')3 được gọi và truyền một đối số, số giây để trì hoãn thực thi Quá trình lặp lại tiếp tục cho đến khi tất cả các ký tự trong tệp được xuất ra thiết bị đầu cuối, do đó tiết lộ từ bí mật fp = open('secret_word4.txt', 'r') while ch := fp.read(1): print(ch, end='') fp.close()5 Python iter() — Hướng dẫn minh họa đơn giản với ví dụ Xem video này trên YouTube Phương pháp 2. Sử dụng open(), read() và vòng lặp whilePhương pháp này sử dụng vòng lặp fp = open('secret_word4.txt', 'r') while ch := fp.read(1): print(ch, end='') fp.close()8 để đọc tệp văn bản phẳng và hiển thị nội dung từng ký tự một from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter) Dòng đầu tiên trong đoạn mã trên nhập hàm fp = open('secret_word4.txt', 'r') while ch := fp.read(1): print(ch, end='') fp.close()9() từ thư viện with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')4. Hàm này trì hoãn việc thực thi mã cho đến khi hết thời gian xác định ( with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')5) Dòng sau mở tệp văn bản phẳng, import time import sys def get_secret_word(word): for c in word: sys.stdout.write(c) sys.stdout.flush() time.sleep(0.25) get_secret_word('~ Socrates')2, ở chế độ đọc ( with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')7) và lưu nó dưới dạng Đối tượng tệp, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')8. Điều này cho phép chúng tôi truy cập và thao tác với tệp đã nói. Nếu xuất ra thiết bị đầu cuối, một Đối tượng tệp tương tự như bên dưới sẽ hiển thị with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')9 Tiếp theo, một vòng lặp from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)1 được khởi tạo và thực thi cho đến khi một câu lệnh bên trong vòng lặp trở thành Sai (ví dụ: không còn ký tự nào để đọc) Sau đó, import time import sys def get_secret_word(word): for c in word: sys.stdout.write(c) sys.stdout.flush() time.sleep(0.25) get_secret_word('~ Socrates')8 Dòng sau xác định xem import time import sys def get_secret_word(word): for c in word: sys.stdout.write(c) sys.stdout.flush() time.sleep(0.25) get_secret_word('~ Socrates')8 có thực sự chứa một ký tự hay không. Nếu Đúng, thì import time import sys def get_secret_word(word): for c in word: sys.stdout.write(c) sys.stdout.flush() time.sleep(0.25) get_secret_word('~ Socrates')8 xuất ra thiết bị đầu cuối. Nếu Sai, vòng lặp kết thúc Quá trình lặp lại tiếp tục cho đến khi tất cả các ký tự trong tệp được xuất ra thiết bị đầu cuối, do đó tiết lộ từ bí mật open() 1Phương pháp 3. Sử dụng open(), readline() và vòng lặp forPhương pháp này sử dụng vòng lặp from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)3 và from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)4 để đọc tệp văn bản phẳng và hiển thị nội dung từng ký tự một with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='') Dòng đầu tiên trong đoạn mã trên mở tệp văn bản phẳng, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')7) và lưu nó dưới dạng Đối tượng tệp, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')8 Tiếp theo, dòng đầu tiên của tệp văn bản được đọc vào biến Cuối cùng, một vòng lặp from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)4 được khởi tạo để lặp qua từng ký tự trong open() 8, xuất ra một ký tự trên mỗi lần lặp tới thiết bị đầu cuối trên cùng một dòng, do đó tiết lộ từ bí mậtread() 1Phương pháp 4. Sử dụng open(), read() và toán tử hải mãPhương pháp này sử dụng Trong Trăn 3. 8, một cú pháp mới đã được định nghĩa. toán tử fp = open('secret_word4.txt', 'r') while ch := fp.read(1): print(ch, end='') fp.close() Dòng đầu tiên trong đoạn mã trên mở tệp văn bản phẳng, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')7) và lưu nó dưới dạng Đối tượng tệp, with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')8 Dòng sau khởi tạo một vòng lặp fp = open('secret_word4.txt', 'r') while ch := fp.read(1): print(ch, end='') fp.close()8 và sử dụng toán tử hải mã ( read() 5) đọc và xuất một ký tự trên mỗi lần lặp tới thiết bị đầu cuối trên cùng một dòng, do đó tiết lộ từ bí mậtiter() 1Tệp đóng lại và tập lệnh kết thúc Phương pháp 5. Sử dụng write() và flush()Phương pháp này sử dụng from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)7 và from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)8 để đọc tệp văn bản phẳng và hiển thị nội dung từng ký tự một import time import sys def get_secret_word(word): for c in word: sys.stdout.write(c) sys.stdout.flush() time.sleep(0.25) get_secret_word('~ Socrates') Hai (2) dòng đầu tiên trong đoạn mã trên nhập các thư viện with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')4 và iter() 5. Thư viện with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')4 được sử dụng để gọi hàm with open('secret_word3.txt', 'r') as fp: word = fp.readline() for letter in word: print(letter, end='')3, làm trì hoãn việc thực thi. Trong khi thư viện iter() 5, được sử dụng để gọi các hàm xuất nội dung và chuyển nội dung tương tự đến thiết bị đầu cuốiDòng sau khai báo một hàm, Bên trong hàm này, một vòng lặp from time import sleep with open('secret_word2.txt', 'r') as fp: while True: letter = fp.read(1) if not letter: break print(letter)4 được khởi tạo và lặp qua từng ký tự trong chuỗi được truyền ( open() 8) và thực hiện như sau
Quá trình lặp lại này tiếp tục cho đến khi đạt đến cuối tệp, do đó tiết lộ từ bí mật lambda 3Tóm lượcBài viết này đã cung cấp năm (5) cách đọc từng ký tự một từ tệp để chọn cách phù hợp nhất cho yêu cầu viết mã của bạn |