Я хочу перейти к строке 34 в TXT файле и прочитать его. Как вы это сделаете в Python?
Перейти к определенной строке в Python?
Ответ 1
Использовать стандартную библиотеку Python linecache модуль:
line = linecache.getline(thefilename, 33)
должен делать именно то, что вы хотите. Вам даже не нужно открывать файл - linecache
делает все для вас!
Ответ 2
Этот код откроет файл, прочитает строку и распечатает ее.
# 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)
Ответ 3
Решение, которое не будет читать больше файла, чем необходимо,
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))
Очень простое решение
line_number = 34
with open(filename) as f:
f.readlines()[line_number - 1]
Ответ 4
Есть два пути:
- Прочитайте файл, по очереди, остановитесь, когда вы попали в нужную строку.
- Используйте
f.readlines()
, который прочитает весь файл в памяти и вернет его как список строк, а затем извлечет 34-й элемент из этого списка.
Решение 1
Преимущество: вы сохраняете в памяти только определенную строку.
код:
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
Решение 2
Преимущества: гораздо меньше кода
Downside: считывает весь файл в память
Проблема: произойдет сбой, если в списке присутствует менее 34 элементов, требуется обработка ошибок
line = f.readlines()[33]
Ответ 5
Вы можете просто прочитать все строки и проиндексировать строку после.
line = open('filename').readlines()[33]
Ответ 6
for linenum,line in enumerate(open("file")):
if linenum+1==34: print line.rstrip()
Ответ 7
Я рассказал об этом и не получил помощи, поэтому взял материю в свои руки.
Здесь нет сложного кода.
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.
Если вы завершили это в python, убедитесь, что у вас есть оба файла (.py) и (.txt) в том же месте, иначе python не сможет получить это, если вы не укажете местоположение файла. НАПРИМЕР.
linecache.getline("C:/Directory/Folder/Quotes.txt
Это используется, когда файл находится в другой папке, чем файл .py, который вы используете.
Надеюсь, это поможет!