Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2010 10:40:21

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

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

o7412369815963
и работать в 100 раз быстрее будет
Во-первых у вас ошибка в коде. Лишняя строчка пишется в файл.
Во-вторых не в 100 раз, а только немного быстрее. Но в целом я согласен, это не C++ :)

Ну и напоследок вариант еще немного быстрее, но жрущий память.
out=open('result.txt',"w")
out.write('\n'.join([str(x) for x in xrange(780000,1000000)])+'\n')
out.close()
PS: и еще быстрее (больше чем в 2 раза быстрее исходного):
out=open('result.txt',"w")
out.write('\n'.join(map(str, xrange(780000,1000000)))+'\n')
out.close()



Отредактировано (Фев. 19, 2010 11:14:14)

Офлайн

#2 Фев. 19, 2010 17:12:55

Zayaz
От:
Зарегистрирован: 2010-02-18
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Всем просто офигенное спасибо! Благодаря вашим ответам много в чем разобрался…
2o7412369815963 про while в учебнике раньше написано чем for…)

Если у кого-нибудь еще появятся мысли как можно доработать (там поля для ввода замутить или проверку на лицензию с записью в реестр, или еще какие-нибудь фишки), то имейте в виду - по меньшей мере один человек очень внимательно к ним отнесется…

Заранее благодарен!



Офлайн

#3 Фев. 19, 2010 17:27:36

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

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

Zayaz
2o7412369815963 про while в учебнике раньше написано чем for…)
ясно, я учебники не читал, просто начинаю что-то делать и на ходу разбираюсь.

Офлайн

#4 Март 2, 2010 11:04:49

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

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

Подскажите как сделать так, чтобы при записи записывалось в одну строку(через пробел или запятую к примеру.), а не переносилось на следующую.
Используемый код:
f1 = open(“in.txt”, “r”)
f2 = open(“out.txt”,“w”)
while 1:
l = f1.readline()
if not l:
break
if “SINGLE” in l:
f2.write(l)
print l+'\n'
f2.close()
f1.close()



Отредактировано (Март 2, 2010 11:06:02)

Офлайн

#5 Март 2, 2010 11:13:35

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

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

Заменил f2.write(l+',') - получилось)



Офлайн

#6 Март 2, 2010 14:15:09

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Divergent
Подскажите как сделать так, чтобы при записи записывалось в одну строку(через пробел или запятую к примеру.), а не переносилось на следующую.
Используемый код:
f1 = open(“in.txt”, “r”)
f2 = open(“out.txt”,“w”)
while 1:
l = f1.readline()
if not l:
break
if “SINGLE” in l:
f2.write(l)
print l+'\n'
f2.close()
f1.close()
with open("in.txt", "r") as f1:
with open("out.txt", "w") as f2:
for l in iter(f1.readline, ''):
if "SINGLE" in l:
f2.write(l)
print l+'\n'



Офлайн

#7 Март 2, 2010 15:25:36

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

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

bazooka
with open(“in.txt”, “r”) as f1: with open(“out.txt”, “w”) as f2: for l in iter(f1.readline, ‘'): if “SINGLE” in l: f2.write(l) print l+’\n'
хотел записать цифровые последовательности, но не получается как-то.

Пробовал писать при помощи регулярных if "{5}\n" in l:
f2.write(l)
print l+'\n'

И так пробовал if "" in l:
f2.write(l)
print l+'\n'

IndexError: string index out of range

Но ни так ни так не получается.



Офлайн

#8 Март 2, 2010 15:57:08

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Divergent
if "{5}\n" in l:
регулярки нитак юзаюца http://docs.python.org/library/re.html
Divergent
if "" in l:
а эт ваще че? О_о



Офлайн

#9 Март 2, 2010 16:08:36

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

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

bazooka
Divergent
if "{5}\n" in l:
регулярки нитак юзаюца http://docs.python.org/library/re.html
Divergent
if "" in l:
а эт ваще че? О_о
Хотел описать , что если 6ой символ один из 1..7 , то…



Офлайн

#10 Март 2, 2010 21:59:34

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

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

Чуток почитал…

import re
f1 = open("1.txt", "r")
f2 = open("2.txt","w")
while 1:
l = f1.readline()
if not l:
break
if re.search(r"\d{5}[1-7]",l):
f2.write('\n'+l[0:6]+',')
if re.search(r"\d{5}[089]",l):
f2.write('\n'+l[0:6]+',')
f2.close()
f1.close()
вторая часть ничего не дописывает почему-то. подскажите почему.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version