1
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...

Câu trả lời của bạn

Chào mừng bạn đến với cộng đồng chia sẻ tri thức BanhoiTuidap.com, bạn có thể chia sẻ bất kỳ sự hiểu biết, nghiên cứu hoặc kinh nghiệm của mình về câu hỏi này với một số lưu ý:
  • Lịch sự, tế nhị.
  • Hạn chế ghi tắt, câu trả lời của bạn chỉ nên tập trung vào câu hỏi ở trên.
Câu trả lời của bạn sẽ được đăng ở chế độ cộng đồng, cho nên bạn sẽ không thể chỉnh sửa sau khi đăng, có thể đăng ký thành viên trên BanhoiTuidap.com khi bạn muốn theo dõi câu hỏi này hoặc chủ đề liên quan.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)
Bạn đang thắc mắc? Hỏi cộng đồng (?)