Как прочитать конкретную строку из текстового файла в Python - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь сделать игру, которая требует, чтобы я читал определенные строки из текстового (.txt) файла в python 3.6.Я нашел способ сделать это, если я просто хочу напечатать строку.Тем не менее, я хочу использовать строку в операторе if: Примечание * Текстовый файл называется «текст» и имеет «1» в строке 1, «2» в строке 2 и т. Д. И т. Д.

file = open("text.txt", "r")

line1 = file.readline()
line2 = file.readline()
line3 = file.readline()

print(line1)
print(line2)
print(line3)

if line1 == "1":
    print("True")
else:
    print("False")
file.close()

Я знаю, что он читает строки правильно, из-за тестирования печати.Однако оператор if печатает false.Я не знаю, что я делаю неправильно, и я ничего не нашел в своем исследовании.

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Вы можете преобразовать вашу строку в целое число и проверить это следующим образом:

if int(line1) == 1:

Это может дать вам больше гибкости в долгосрочной перспективе ...

0 голосов
/ 18 мая 2018

Вы можете сделать это также с помощью панд skiprows в read_csv.Предположим, что ваша таблица выглядит следующим образом:

import numpy, pandas, time
my_table = numpy.random.random((10, 4))
numpy.savetxt("text.txt", my_table, delimiter=",")

Вы можете просто прочитать определенную строку, установив skiprows;

print(pandas.read_csv("text.txt", sep =',',header = None, skiprows =3, nrows = 1))

или назначить каждую строку переменной;

for i in range(len(df)):
     locals()['line'+ str(i+1)] = pandas.read_csv("text.txt", sep =',',header = None, skiprows =i, nrows = 1)
print(line1)

или только значения массива:

print(line2.values)
0 голосов
/ 18 мая 2018

Вы читаете свою строку с символом новой строки в конце.Ваша переменная line1, вероятно, содержит строку '1\n'.

Попробуйте вызвать .strip() сразу после readline:

line1 = file.readline().strip()
line2 = file.readline().strip()
line3 = file.readline().strip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...