Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2010 09:39:34

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

В моей мини проге считываю данные из файла и записываю в другой определённые данные.

Записываемые данные иногда повторяются. Как сделать так, чтобы при повторении данные не записывались?



Офлайн

#2 Март 5, 2010 10:27:37

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

В каком смысле “повторяются”? По всему файлу, или подряд?

Офлайн

#3 Март 5, 2010 10:35:34

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

По всему файлу. То есть к примеру первая строчка и тысяча первая повторяются. Как бы сделать так, чтобы при записи тысячи первой строки её не записывать или записать “повтор”, так как она уже есть.



Офлайн

#4 Март 5, 2010 11:03:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

Читать в память, после чего удалять дубли. Годится, если файл маленький.
Делать хеш каждой строчки и держать в месте удобном для поиска - памяти (надо посчитать для какого размера имеет смысл), или в временной базе данных (sqlite), если файл очень большой и строчек слишком много, что бы оперировать в памяти их хешами. Ну, или есть ограничение на размер оперативки.

Офлайн

#5 Март 5, 2010 12:19:13

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

Я пробовал создать ещё третий файл куда будут скидываться сначало данные, затем во второй. Далее по циклу прежде чем записать во второй идёт проверка в третьем.



Офлайн

#6 Март 5, 2010 15:23:28

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

Я бы писал хеш, и в базу. Ввод-вывод большой строки, думаю, медленнее, чем вычисление хеша и его зачитка.

Офлайн

#7 Март 16, 2010 09:27:52

Divergent
От:
Зарегистрирован: 2010-01-27
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

Хелп ми…

Не могу понять в чём косяк объявленной мною функции.

def NOMER(l):
if re.search(r“\d{6}\n”,l):
print l
s=l
return s

Дальше в окне даю
>>> l=f1.readline()
>>> print l
112233

>>> NOMER(l)

Traceback (most recent call last):
File “<pyshell#94>”, line 1, in <module>
NOMER(l)
File “<pyshell#75>”, line 5, in NOMER
return s
UnboundLocalError: local variable ‘s’ referenced before assignment

Нужно чтобы далее я мог использовать переменную s в другом цикле.



Отредактировано (Март 16, 2010 09:28:23)

Офлайн

#8 Март 16, 2010 11:47:44

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как записать результат в текстовый файл?

Один вопрос - одна тема.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version