Hướng dẫn how do you read the first word of every line in a text file python? - làm cách nào để bạn đọc từ đầu tiên của mỗi dòng trong tệp văn bản python?

Thay đổi thành một lớp lót cũng hiệu quả hơn với dải như Jon Clements đề xuất trong một bình luận.

with open['Quizzes.txt', 'r'] as f:
    wordlist = [line.split[None, 1][0] for line in f]

Điều này khá không liên quan đến câu hỏi của bạn, nhưng chỉ là dòng.Split [không, 1] không làm bạn bối rối, nó hiệu quả hơn một chút vì nó chỉ chia tách dòng 1 lần.

Từ các tài liệu str.split[[sep[, maxsplit]]]

Nếu SEP không được chỉ định hoặc không có, một thuật toán phân tách khác nhau được áp dụng: Các lần chạy khoảng trắng liên tiếp được coi là một dấu phân cách duy nhất và kết quả sẽ không chứa các chuỗi trống ở đầu hoặc kết thúc nếu chuỗi có khoảng trắng dẫn đầu hoặc kéo dài. Do đó, tách một chuỗi trống hoặc một chuỗi bao gồm chỉ khoảng trắng với một dấu phân cách không trả về [].

' 1 2 3 '.split[] Trả về ['1', '2', '3']

' 1 2 3 '.split[None, 1] Trả về ['1', '2 3 '].

Đã hỏi ngày 25 tháng 7 năm 2019in Pythonby [45,3k điểm] Jul 25, 2019 in Python by [45.3k points]

Tôi đang cố viết một số mã đọc một tệp văn bản và in chữ cái đầu tiên của mỗi dòng. Mã hiện tại của tôi là:

f=open["testfile1.txt","r"]

Đối với dòng trong F:

& nbsp; & nbsp; words = line.split []

& nbsp; & nbsp; in [từ [0]]

Với điều này, các chuỗi nên được chia thành các từ riêng lẻ, nhưng khi tôi chạy mã, tôi nhận được một thông báo lỗi khi nói chỉ mục danh sách ra khỏi phạm vi. Tôi đã thử các giải pháp của các câu hỏi tương tự mà mọi người đã có trong cùng một chủ đề, nhưng khi tôi sử dụng cùng một mã, tôi sẽ gặp lỗi này. Bất cứ ai có thể giải thích tại sao điều này xảy ra, và làm thế nào tôi có thể sửa nó? Cảm ơn

1 câu trả lời Answer

Đã trả lời ngày 25 tháng 7 năm 2019by Shubham Rana [16,8k điểm] Jul 25, 2019 by Shubham Rana [16.8k points]

Có vẻ như có một vài dòng trống, hãy thử nó, nó sẽ hoạt động:

f=open["testfile1.txt","r"]

Đối với dòng trong F:

& nbsp; & nbsp; words = line.split []

& nbsp; & nbsp; in [từ [0]]

Với điều này, các chuỗi nên được chia thành các từ riêng lẻ, nhưng khi tôi chạy mã, tôi nhận được một thông báo lỗi khi nói chỉ mục danh sách ra khỏi phạm vi. Tôi đã thử các giải pháp của các câu hỏi tương tự mà mọi người đã có trong cùng một chủ đề, nhưng khi tôi sử dụng cùng một mã, tôi sẽ gặp lỗi này. Bất cứ ai có thể giải thích tại sao điều này xảy ra, và làm thế nào tôi có thể sửa nó? Cảm ơn

f.close[]

1 câu trả lờiwith open :

Đã trả lời ngày 25 tháng 7 năm 2019by Shubham Rana [16,8k điểm]

Có vẻ như có một vài dòng trống, hãy thử nó, nó sẽ hoạt động:

& nbsp; & nbsp; Nếu lời nói:

& nbsp; & nbsp; & nbsp; & nbsp; in [từ [0]]

Sử dụng, với mở:

với Open ["testfile1.txt", "r"] là f:

Tôi có một tệp có một số nội dung và tôi chỉ muốn hiển thị từ đầu tiên của mỗi dòng từ tệp. Tôi đã thử nhưng không nhận được. ============================ Tệp nội dung =================================== ====== Xin chào thế giới Xin chào một lần nữa chương trình Python là tuyệt vời
===========================
file content
===========================
hello world
hi again
python programming is great

===========================

Mã ===========================
===========================

f=open["file1.txt","r+"]
content=f.read[]
for line in content.split[' ',1]:
    print[line]

Bình luận

Bạn nên phân chia trên ký tự dòng mới [đặt] thay vì ký tự không gian. Bằng cách này, bạn sẽ nhận được một bảng dòng. Những gì bạn thực sự làm là có được một bảng từ, không thể thực hiện được yêu cầu của bạn. Khi bạn có một bảng dòng, bạn có thể trích xuất từ ​​đầu tiên của mỗi dòng.

Ok tôi đã phân chia dòng bằng phương thức readline []. Nhưng làm thế nào để có được từ đầu tiên

f = open ["fileName.ext", "r"] # Mở tệp trong chế độ readonly line = [] # Tạo một danh sách trống để lưu trữ các dòng trong tệp cho dòng trong f: line.append [line] # looptrên các dòng trong tệp và lưu trữ chúng trong danh sách dòng cho dòng trong dòng: words_in_line = line.split [] # Tạo danh sách các từ trong mỗi dòng in [word_in_line [0], words_in_line [-1]] # inra từ đầu tiên và từ cuối cùng của mỗi dòng hoặc thực hiện tất cả trong 1 vòng f = open ["fileName.ext", "r"] cho dòng trong f: words = line.split [] in [từ [0], từ[-1]]

Bài Viết Liên Quan

Chủ Đề