Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 23, 2011 01:04:21

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

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

> Проблема в том, что я не могу как в С++ построчно считывать файл и следовательно не могу вставить в нужное место строку.

Дык. Я не понял почему вы не можете построчно читать файл?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#2 Июнь 23, 2011 11:50:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

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

Rodegast
я не могу как в С++ построчно считывать файл
for i in open("a.lst","r").readlines():
print i



Отредактировано (Июнь 23, 2011 11:51:15)

Офлайн

#3 Июнь 23, 2011 12:33:28

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

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

Ну я о том же. С построчным чтением файла нет никаких проблем. Причём большие файлы можно читать через readline(), а маленькие через readlines(). В последнем случае вставка строки в произвольное место становится ну очень простой задачей.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Июнь 24, 2011 09:01:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

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

>>> with open("/etc/passwd", "r") as f:
... for i in (1, 2):
... print i, next(f).rstrip('\n')
...
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
>>>
doza_and
for i in open("a.lst","r").readlines():
print i
файл остался открытым



Офлайн

#5 Июнь 24, 2011 11:36:15

kublo
От:
Зарегистрирован: 2011-04-08
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

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

py.user.next
файл остался открытым
А разве его не закроет сборщик мусора после того как создастся список ?



Офлайн

#6 Июнь 24, 2011 12:08:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

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

А на каком основании закрывать именно после создания списка?
Кстати, в 3.2 незакрытый файл — это ResourceWarning



Офлайн

#7 Июнь 30, 2011 21:04:43

sys_dev
От:
Зарегистрирован: 2011-06-22
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

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

>>Кстати, в 3.2 незакрытый файл — это ResourceWarning
Thank you!!!



Офлайн

#8 Июль 2, 2011 14:22:41

FroL
От:
Зарегистрирован: 2011-06-21
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Я сделал вот как: я открываю свой файл и создаю новый. Читаю строку и сразу же записываю в буферный файл. Когда я нахожу нужную строку я записываю новую строку, а потом до записываю файл. Потом удаляю исходный файл, а буферный файл переименовываю :)



Офлайн

#9 Июль 7, 2011 09:24:04

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Rodegast
Ну я о том же. С построчным чтением файла нет никаких проблем. Причём большие файлы можно читать через readline(), а маленькие через readlines(). В последнем случае вставка строки в произвольное место становится ну очень простой задачей.
Вообще, open возвращает итерабельный объект:
for i in open("hello.txt"):
...



Офлайн

#10 Июль 8, 2011 04:19:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

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

Carzil
Вообще, open возвращает итерабельный объект:
for i in open("hello.txt"):
нужно закрыть файл потом



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version