Это правильный способ перейти к началу каждой строки в текстовом файле с помощью seek ()?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Это правильный способ перейти к началу каждой строки в текстовом файле с помощью seek ()?

Сообщение Anonymous »

Код: Выделить всё

from sys import argv
script, input_file = argv

hello = open(input_file)

read1 = hello.readline()

print("Line1: ", read1, end = "")
line1 = len(read1) + 1
print(line1)

read2 = hello.readline()

print("Line2: ", read2, end = "")
line2 = len(read1 + read2) + 2
print(line2)

read3 = hello.readline()

print("Line3: ", read3, end = "")
line3 = len(read1 + read2 + read3) + 3
print(line3)

read4 = hello.readline()
print("Line4: ", read4)

beep = input("""I give you the option to choose the line you print:
1. Type: first line
2. Type: second line
3. Type: third line
4. Type: fourth line
""")

if (beep == "first line"):
choice = 0
elif (beep == "second line"):
choice = line1
elif (beep == "third line"):
choice = line2
else:
choice = line3

def runner(f):
hello.seek(f)
green = hello.readline()
print("The line reads: ", green)

runner(choice)
< /code>
Я хочу распечатать определенную строку из текстового файла, как указано пользователем. Я знаю, что функция поиска (
) использует вход в терминах байтов для перемещения указателя чтения в позиции, соответствующей размеру в байтах. Например, если текстовый файл имеет 4 строки, а каждая строка имеет размер 10 байтов (включая символ Newline), то размер вход 11 соответствует началу второй строки. Теперь, если я хочу переместить позицию чтения в начало четвертой строки, я введу 31 (сумма размеров предыдущих строк + 1) на функцию seek () для перемещения указания чтения/письма на четвертую строку.
Но в прикрепленной части кода я имею входную сумму размеров предыдущих 3 линий + 3, чтобы получить позицию из начала четвертой строки (вместо того, что в предыдущей линии 3), но еще более не в коде 3), но еще более не в коде 3). работает совершенно нормально.
Фактически, когда я заменяю +3 (или +2) на +1, я не получаю необходимую линию. < /p>
Введите описание изображения здесь < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... t-file-usi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»