Форум сайта python.su
0
Есть файл text.txt такого вида:
1111
2222
3333
4444
5555
6666
7777
8888
9999
Делаем:
file=open(text.txt)
for lines in file:
print(file.readline())
Выводит строчки через одну, а не все:
>>>
2222
4444
6666
8888
>>>
Почему так? И как сделать, чтобы выводил все?
Офлайн
72
toronto
file=open(text.txt)
for lines in file: # Здесь читаем строку
print(file.readline()) # И здесь читаем строку
with open('test.txt') as input_file:
for line in input_file:
print line.strip()Офлайн
0
Понял. Спасибо)
Офлайн
2
file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла
Офлайн
20
> .strip() - удалит перевод строки в конце прочитанной строчки
Врёшь. STRIP без аргументов удалят несколько больший набор символов, чем просто переводы, к тому же не только в конце, но и в начале (это не всегда нужно), точнее было бы: line.rstrip('\r\n')
> file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла
Будешь смеяться, но readlines, в отличии от xreadlines всем известен, и итерация по файловому объекту есть ни что иное как работа xreadlines. Точно не нужен цикл, точно переноса в конце не будет? А ну марш учить уроки.
..bw
Офлайн
72
bwГадом буду! :) Я же не доку по фунции писал, а пояснил зачем .strip воткнул. А для его файлика все равно.
> .strip() - удалит перевод строки в конце прочитанной строчки
Врёшь. STRIP без аргументов удалят несколько больший набор символов, чем просто переводы, к тому же не только в конце, но и в начале (это не всегда нужно), точнее было бы: line.rstrip('\r\n')
Офлайн
2
bwxreadlines тоже можно юзать, но я уведела что там файлик маленький, так что незачем построчно доставать, можно сразу в список. да если строк в файле много следует использовать xreadlines т.к. он достает нужнкую строку при обращении к ней а не загружает все содержимое файла единоразово в 1 список. Уроки выучены?
>
> file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла
Будешь смеяться, но readlines, в отличии от xreadlines всем известен, и итерация по файловому объекту есть ни что иное как работа xreadlines. Точно не нужен цикл, точно переноса в конце не будет? А ну марш учить уроки.
..bw
Офлайн
0
а можно вот так поступить
file=open('text.txt','rt')
for Line in file:
print Line,
Команда print дописывает к своему выводу символ новой строки, а поскольку в вашем файле и так каждая строка заканчивается символом новой строки то и получаем на выходе пустые строки. Можно после Line поставить <,> и тогда команда print не будет выводить последний символ строки, но попрежнему будет сама дописывать символ новой строки, то есть на выходе будет то что надо.
Офлайн
1
print(open('file','r').read())
Отредактировано ring0za (Авг. 18, 2013 16:32:36)
Офлайн
6
file=open(text.txt)
for lines in file:
print(file.readline())
Выводит строчки через одну, а не все:
Офлайн