Hướng dẫn how do you go to a specific line in a text file in python? - làm thế nào để bạn đi đến một dòng cụ thể trong tệp văn bản trong python?

Tôi muốn đi đến dòng 34 trong một tệp .txt và đọc nó. Làm thế nào bạn sẽ làm điều đó trong Python?

T. Zengerink

4.2195 Huy hiệu vàng29 Huy hiệu bạc31 Huy hiệu Đồng5 gold badges29 silver badges31 bronze badges

hỏi ngày 15 tháng 3 năm 2010 lúc 1:11Mar 15, 2010 at 1:11

ArchhaskellerarchhaskellerArchHaskeller

1.2401 Huy hiệu vàng12 Huy hiệu bạc28 Huy hiệu đồng1 gold badge12 silver badges28 bronze badges

3

Sử dụng mô -đun linecache của thư viện tiêu chuẩn Python:

line = linecache.getline[thefilename, 33]

nên làm chính xác những gì bạn muốn. Bạn thậm chí không cần phải mở tệp - linecache làm tất cả cho bạn!

Đã trả lời ngày 15 tháng 3 năm 2010 lúc 1:21Mar 15, 2010 at 1:21

Alex Martellialex MartelliAlex Martelli

827K163 Huy hiệu vàng1204 Huy hiệu bạc1383 Huy hiệu Đồng163 gold badges1204 silver badges1383 bronze badges

6

Mã này sẽ mở tệp, đọc dòng và in nó.

# Open and read file into buffer
f = open[file,"r"]
lines = f.readlines[]

# If we need to read line 33, and assign it to some variable
x = lines[33]
print[x]

Đã trả lời ngày 8 tháng 11 năm 2011 lúc 5:38Nov 8, 2011 at 5:38

Một giải pháp sẽ không đọc nhiều tệp hơn mức cần thiết

from itertools import islice
line_number = 34

with open[filename] as f:
    # Adjust index since Python/islice indexes from 0 and the first 
    # line of a file is line 1
    line = next[islice[f, line_number - 1, line_number]]

Một giải pháp rất đơn giản là

line_number = 34

with open[filename] as f:
    f.readlines[][line_number - 1]

IABSTRACT

19.7K15 Huy hiệu vàng93 Huy hiệu bạc143 Huy hiệu Đồng15 gold badges93 silver badges143 bronze badges

Đã trả lời ngày 15 tháng 3 năm 2010 lúc 2:32Mar 15, 2010 at 2:32

Mike Grahammike GrahamMike Graham

71.3K14 Huy hiệu vàng98 Huy hiệu bạc129 Huy hiệu đồng14 gold badges98 silver badges129 bronze badges

Có hai cách:

  1. Đọc tệp, từng dòng, dừng khi bạn đến dòng bạn muốn
  2. Sử dụng
    # Open and read file into buffer
    f = open[file,"r"]
    lines = f.readlines[]
    
    # If we need to read line 33, and assign it to some variable
    x = lines[33]
    print[x]
    
    0 sẽ đọc toàn bộ tệp vào bộ nhớ và trả lại dưới dạng danh sách các dòng, sau đó trích xuất mục thứ 34 từ danh sách đó.

Giải pháp 1

Lợi ích: Bạn chỉ giữ, trong bộ nhớ, dòng cụ thể mà bạn muốn.

code:

for i in xrange[34]:
    line = f.readline[];
# when you get here, line will be the 34th line, or None, if there wasn't
# enough lines in the file

Giải pháp 2

Lợi ích: Nhược điểm ít hơn về mã: Đọc toàn bộ tệp vào vấn đề bộ nhớ: sẽ bị sập nếu có ít hơn 34 phần tử trong danh sách, cần xử lý lỗi
Downside: Reads the entire file into memory
Problem: Will crash if less than 34 elements are present in the list, needs error handling

line = f.readlines[][33]

Đã trả lời ngày 15 tháng 3 năm 2010 lúc 1:20Mar 15, 2010 at 1:20

Lasse V. Karlsenlasse V. KarlsenLasse V. Karlsen

372K98 Huy hiệu vàng623 Huy hiệu bạc809 Huy hiệu Đồng98 gold badges623 silver badges809 bronze badges

Bạn chỉ có thể đọc tất cả các dòng và lập chỉ mục dòng sau của bạn.

line = open['filename'].readlines[][33]

Đã trả lời ngày 15 tháng 3 năm 2010 lúc 1:15Mar 15, 2010 at 1:15

Tarntarntarn

2.1822 Huy hiệu vàng13 Huy hiệu bạc17 Huy hiệu đồng2 gold badges13 silver badges17 bronze badges

1

for linenum,line in enumerate[open["file"]]:
    if linenum+1==34: print line.rstrip[]

Đã trả lời ngày 15 tháng 3 năm 2010 lúc 1:24Mar 15, 2010 at 1:24

ghostdog74ghostdog74ghostdog74

Phù bằng vàng 315K5555 gold badges253 silver badges341 bronze badges

1

Tôi đã thực hiện một chủ đề về điều này và không nhận được sự giúp đỡ nên tôi đã đưa vấn đề vào tay mình.

Không có bất kỳ mã phức tạp ở đây.

import linecache
#Simply just importing the linecache function to read our line of choosing

number = int[input["Enter a number from 1-10 for a random quote "]]
#Asks the user for which number they would like to read[not necessary] 

lines = linecache.getline["Quotes.txt", number]
#Create a new variable in order to grab the specific line, the variable 
#integer can be replaced by any integer of your choosing.

print[lines]
#This will print the line of your choosing.

Nếu bạn đang hoàn thành việc này trong Python, hãy chắc chắn rằng bạn có cả hai tệp [.py] và [.txt] ở cùng một vị trí nếu không Python sẽ không thể truy xuất điều này, trừ khi bạn chỉ định vị trí tệp. VÍ DỤ.

# Open and read file into buffer
f = open[file,"r"]
lines = f.readlines[]

# If we need to read line 33, and assign it to some variable
x = lines[33]
print[x]
1

Điều này được sử dụng khi tệp nằm trong một thư mục khác so với tệp .py bạn đang sử dụng.

Hi vọng điêu nay co ich!

Đã trả lời ngày 10 tháng 7 năm 2017 lúc 15:19Jul 10, 2017 at 15:19

AwaisawaisAwais

556 Huy hiệu Đồng6 bronze badges

Làm thế nào để bạn chọn một dòng cụ thể trong Python?

Python: Chọn một dòng cụ thể từ văn bản..
Mở tệp văn bản ..
Đi đến các dòng bắt đầu với "bắt đầu".
Chuyển đến dòng 3 từ các dòng bắt đầu bằng "Bắt đầu" [đã chọn trước đó].
Kiểm tra xem dòng đó có chứa từ "chứa" không ..

Làm thế nào để bạn chọn một dòng từ một tệp văn bản trong Python?

Để đọc một dòng cụ thể từ một tệp văn bản trong Python, bạn có thể sử dụng readlines [] hoặc bạn cũng có thể nhập linecache.use readlines[] or you can also import linecache.

Bài Viết Liên Quan

Chủ Đề