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
💬 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à mộtlambda
- Phương pháp 2. Sử dụng vòng lặp
open[]
,read[]
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]
1 - Phương pháp 3. Sử dụng vòng lặp
open[]
,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 - Phương pháp 4. Sử dụng
open[]
,read[]
và toán tử hải mã - Phương pháp 5. 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
Phương pháp 1. Sử dụng open[], read[], iter[] và lambda
Phương pháp này sử dụng open[]
, read[]
, iter[]
và lambda
để đọ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_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 while
Phương pháp này sử dụng vòng lặp open[]
, read[]
và
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 đó, read[]
được gọi và truy xuất một [1] ký tự từ tệp. Kết quả lưu vào biến
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 for
Phương pháp này sử dụng vòng lặp open[]
,
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, open[]
5, ở 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
Tiếp theo, dòng đầu tiên của tệp văn bản được đọc vào biến open[]
8
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 open[]
và read[]
và toán tử read[]
4 để đọc tệp văn bản phẳng và hiển thị nội dung từng ký tự một
Trong Trăn 3. 8, một cú pháp mới đã được định nghĩa. toán tử read[]
5, được gọi một cách trìu mến là toán tử hải mã. Một nhà điều hành mới kiểu dáng đẹp
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, read[]
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
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, iter[]
9. Hàm này được truyền một [1] đối số, một chuỗi
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- Đọc một [1] ký tự và xuất nó ra thiết bị đầu cuối
- Xóa ký tự khỏi bộ đệm
- Tạm dừng thực thi mã trong thời gian đã chỉ định [
lambda
2]
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ược
Bà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