2
Làm sao để duyệt các dòng trong file *.txt và trả về kết quả nếu câu nhập vào trùng với câu trong file *.txt? [Python]
1
Cộng đồng đã đăng:

Ví dụ em có tập tin Text.txt trong đường dẫn C:\Python có nội dung như sau:

I came here to study.
Tôi đến đây học

I wanted to live abroad.
Tôi muốn sống ở nước ngoài.

I like listening to music.
Tôi thích nghe nhạc.

Em muốn nhập từ bàn phím vào 1 câu tiếng anh sau đó code duyệt từng dòng trong tệp Text.txt nếu trùng với câu nào thì trả về kết quả câu dịch bên dưới, nếu câu nhập vào không trùng với câu trên thì duyệt tiếp xuống câu bên dưới cho đến khi nào duyệt hết file Text.txt thì thôi bằng ngôn ngữ Python. Em mới tìm hiểu Python, có gì không biết mong các anh/chị bỏ qua^^ Em cảm ơn ạ!

thêm bình luận...
0
VTV330 đã đăng:

Có nhiều cách để bạn có thể làm bài này.

Cách đầu tiên là đọc toàn bộ tập tin và lưu hết vào array hoặc dict chẳng hạn, xử lý lưu như thế nào để lúc sau bạn có thể dễ dàng so sánh là được, sau đó bạn chỉ cần so sánh input nhập vào với array hoặc dict đó. Cách này có một bất lợi là nếu dữ liệu trong tập tin *.txt của bạn quá lớn, sẽ gây tốn rất nhiều bộ nhớ.

Ví dụ mã nguồn (mình sử dụng Python 2 nhé).

# Read data
with open('data.txt', 'r') as f:
    dataset = f.readline()

# Process input from console
print 'Please type an english sentence:'
en_sentence = raw_input()
is_found = False
for index in range(len(dataset)):
    if en_sentence == dataset[index].strip():
        print dataset[index + 1]
        is_found = True
        break

# If nothing found, print 'khong tim thay!'
if not is_found:
    print 'Khong tim thay!'

Cách thứ hai là đối với mỗi input nhập vào, bạn cần duyệt từng dòng của tập tin để so sánh, nếu dòng nào trùng thì trả về dòng kế tiếp (tức là dòng dịch ra tiếng Việt).

Ví dụ mã nguồn.

# Process input from console
print 'Please type an english sentence:'
en_sentence = raw_input()

# Read data and find
is_found = False
with open('data.txt', 'r') as f:
    for line in f:
        if is_found == True:
            print line.strip()
            break
        elif en_sentence == line.strip():
            is_found = True
# If nothing found, return 'khong tim thay!'
if not is_found:
    print 'Khong tim thay!'

Ngoài ra bạn còn nhiều cách khác để làm bởi lập trình bằng Python rất dễ vì cú pháp đơn giản ngắn gọn của nó.

thêm bình luận...
0
Cộng đồng đã đăng:
  1. Để nhập dữ liệu từ bàn phím, bạn hãy dùng lệnh input nha. Tham khảo Nhập biến trong python

  2. Để xử lý file text này, bạn có thể đọc toàn bộ nội dung vào một chuỗi hoặc một list và sau đó so sánh nội dung với dữ liệu nhập từ bàn phím. Tham khảo : Đọc file trong python

thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)