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

💬 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ột lambda
  • Phương pháp 2. Sử dụng vòng lặp open[], read[]
    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[]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ột

Kế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[]

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[]1

Phươ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ật

read[]1

Phươ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[]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ật

iter[]1

Tệ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ối

Dò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 [lambda2]

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

lambda3

Tó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

Chủ Đề