Форум сайта python.su
Здравствуйте. Первый день пробую что-то сделать на Питоне.
Имеется такая забавная проблема: нужно пройтись по всем строкам файла и, если содержимое строки равно X, выполнить некое действие. Тестовый код:
Содержимое файла:
One
Two
Three
with open('test.txt', ‘r’) as all:
for line in all:
if line == ‘Two’:
print(line)
Результат: ничего не выводит. Как вы считаете, в чем может быть проблема?
Офлайн
В символах завершения строки.
Офлайн
первая проблема в том что вы не считали строки из файла в переменную. вторая может быть если не правильно считать то есть с символом конца строки тогда условие тоже не выполниться.
with open('test.txt', 'r') as all: list_line = all.read().splitlines() for line in list_line: if line == 'Two': print(line)
Отредактировано marvellik (Сен. 6, 2016 21:48:44)
Офлайн
marvellikВ этом нет необходимости.
первая проблема в том что вы не считали строки из файла в переменную.
readlines(hint=-1)
Read and return a list of lines from the stream. hint can be specified to control the number of lines read: no more lines will be read if the total size (in bytes/characters) of all lines so far exceeds hint.
Note that it’s already possible to iterate on file objects using for line in file: ... without calling file.readlines().
Офлайн
Shamanспасибо. не знал. буду осваивать и использовать в дальнейшем.но как это будет работать в данном случае? верней как должно быть, как убрать символ конца строки?
В этом нет необходимости.
with open('test.txt', 'r') as all: print(list(all)) ['One\n', 'Two\n', 'Three\n']
Отредактировано marvellik (Сен. 6, 2016 21:53:47)
Офлайн