Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2010 15:19:09

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

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

Здравствуйте. Нужно сделать текстовый файл чтобы в каждой строке стояла цифра. Код примерно такой:

out=open('resultpyt.txt')
x=1
while x<11:
out.write (x)
x+1
out.close()

Вопрос такой: призапуске консоль ругается что не существует файла или папки resultpyt.txt (файл сам создал). В каком месте и в каком виде указывается путь к нему?
p.s. поиск смотрел тщательно и книги читал, но уровень моего кунфу настолько низок, что мне не понять. Всем заранее спасибо.



Офлайн

#2 Фев. 18, 2010 15:44:45

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

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

import sys
a = ['путь к твоему файлу' ,]
sys.path+=a
но если он лежит там же где и программа то должен находиться автоматом



Отредактировано (Фев. 18, 2010 16:15:11)

Офлайн

#3 Фев. 18, 2010 15:47:53

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

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

у тя флаг ‘w’ не стоит в open

open('resultpyt.txt','w').writelines([str(x)+'\n' for x in xrange(10)])
читай кунфу больше, т.к. это есть и на форуме и в документации

Офлайн

#4 Фев. 18, 2010 15:50:57

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

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

и приложение повиснет т.к. у тя цикл бесконечный, х+1 возвращает 2, но не увеличивает х, нужно так: х += 1

Офлайн

#5 Фев. 18, 2010 15:55:04

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

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

Повышайте уровень кунг-фу: файл можно открыть в разных режимах (в книжках об этом обычно пишут). В вашем случае надо открыь файл “на запись” (модификатор “w”) + “текстовый режим” (модификатор “t”). Т.е. писать:
out = open('resultpyt.txt','wt')
Эта запись создаст (перезапишет) файл, после можно в него писать (но нельзя читать).
Замечание: чтобы в каждой строке по одному числу следует писать:
out.write(str(x) + ‘\n’)
Преобразовываем х в строку (“str(x)”) и указываем переход на новую строку (“\n”).
ЗЫ. Потрудитесь побольше книжек читать и не тратить зря время других людей (они могут быть не такими добрыми как я:))



Офлайн

#6 Фев. 18, 2010 16:13:50

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

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

а вы вопрос ТСа вообще прочитали?

Zayaz
призапуске консоль ругается что не существует файла или папки resultpyt.txt (файл сам создал). В каком месте и в каком виде указывается путь к нему?



Офлайн

#7 Фев. 18, 2010 16:54:47

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

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

А он неправильный вопрос задал. Ему же не “шашечки а ехать” надо.

Офлайн

#8 Фев. 19, 2010 06:23:33

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

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

Всем большое спасибо за развернутые ответы. Особое - dartNNN. 2Ferroman: Вопрос действительно был задан неправильный, но думаю, что через пол-годика это пройдет…). Отдельное спасибо тем, кто удержал себя от того, чтобы написать - “юзай поиск”, “читай книги” и т.д.



Офлайн

#9 Фев. 19, 2010 06:30:22

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

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

В итоге рабочий код такой:

out=open(r'C:\pyt\resultpyt.txt',“w”)
x=780000
while x<1000000:
out.write(str(x)+'\n')
x+=1
out.close()

Может кому-то пригодится… (Python2.6)



Офлайн

#10 Фев. 19, 2010 07:18:55

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

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

Zayaz
В итоге рабочий код такой:
не используй while, это тебе не С++ :)
тут принято юзать for
out=open(r'C:\pyt\resultpyt.txt',"w")
for x in xrange(780000,1000001):
out.write(str(x)+'\n')
out.close()
и работать в 100 раз быстрее будет

Отредактировано (Фев. 19, 2010 07:21:26)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version