Подтвердить что ты не робот

Перейти к определенной строке в Python?

Я хочу перейти к строке 34 в TXT файле и прочитать его. Как вы это сделаете в Python?

4b9b3361

Ответ 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, который вы используете.

Надеюсь, это поможет!