Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2011 08:06:39

toronto
От:
Зарегистрирован: 2011-09-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк из файла

Есть файл 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


>>>

Почему так? И как сделать, чтобы выводил все?



Офлайн

#2 Сен. 2, 2011 08:23:34

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Вывод строк из файла

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()
.strip() - удалит перевод строки в конце прочитанной строчки



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Сен. 2, 2011 08:32:14

toronto
От:
Зарегистрирован: 2011-09-02
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк из файла

Понял. Спасибо)



Офлайн

#4 Сен. 3, 2011 11:27:28

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Вывод строк из файла

file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла



Офлайн

#5 Сен. 3, 2011 20:42:28

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Вывод строк из файла

> .strip() - удалит перевод строки в конце прочитанной строчки
Врёшь. STRIP без аргументов удалят несколько больший набор символов, чем просто переводы, к тому же не только в конце, но и в начале (это не всегда нужно), точнее было бы: line.rstrip('\r\n')

> file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла
Будешь смеяться, но readlines, в отличии от xreadlines всем известен, и итерация по файловому объекту есть ни что иное как работа xreadlines. Точно не нужен цикл, точно переноса в конце не будет? А ну марш учить уроки.

..bw



Офлайн

#6 Сен. 5, 2011 12:59:18

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Вывод строк из файла

bw
> .strip() - удалит перевод строки в конце прочитанной строчки
Врёшь. STRIP без аргументов удалят несколько больший набор символов, чем просто переводы, к тому же не только в конце, но и в начале (это не всегда нужно), точнее было бы: line.rstrip('\r\n')
Гадом буду! :) Я же не доку по фунции писал, а пояснил зачем .strip воткнул. А для его файлика все равно.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Сен. 8, 2011 14:04:14

Fibio
От:
Зарегистрирован: 2010-09-14
Сообщения: 74
Репутация: +  2  -
Профиль   Отправить e-mail  

Вывод строк из файла

bw
>

> file.readlines - достает содержимое файла в список построчно, и не надо никакого цикла
Будешь смеяться, но readlines, в отличии от xreadlines всем известен, и итерация по файловому объекту есть ни что иное как работа xreadlines. Точно не нужен цикл, точно переноса в конце не будет? А ну марш учить уроки.

..bw
xreadlines тоже можно юзать, но я уведела что там файлик маленький, так что незачем построчно доставать, можно сразу в список. да если строк в файле много следует использовать xreadlines т.к. он достает нужнкую строку при обращении к ней а не загружает все содержимое файла единоразово в 1 список. Уроки выучены?



Офлайн

#8 Сен. 12, 2011 13:16:38

ILeA
От:
Зарегистрирован: 2011-09-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк из файла

а можно вот так поступить

file=open('text.txt','rt')
for Line in file:
print Line,


Команда print дописывает к своему выводу символ новой строки, а поскольку в вашем файле и так каждая строка заканчивается символом новой строки то и получаем на выходе пустые строки. Можно после Line поставить <,> и тогда команда print не будет выводить последний символ строки, но попрежнему будет сама дописывать символ новой строки, то есть на выходе будет то что надо.



Офлайн

#9 Авг. 18, 2013 16:31:57

ring0za
Зарегистрирован: 2012-08-13
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Вывод строк из файла

print(open('file','r').read())

Отредактировано ring0za (Авг. 18, 2013 16:32:36)

Офлайн

#10 Авг. 19, 2013 00:27:23

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

Вывод строк из файла

file=open(text.txt)
for lines in file:
print(file.readline())

Выводит строчки через одну, а не все:

логично. ведь генератор дёргается дважды, первую строку - в lines, вторую - через .readline()

проще сделать просто:
for lines in file:
pirnt (lines)



Бейсик - не порок, Гвидо - не пророк

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version