У меня проблема с маленькой программой на python: я хочу написать в архиве текстовые числа от 0 до 10, но программа постоянно выдает ошибку и ничего не печатает.

i=0
while(i<11):
    outfile = open('text.txt', 'a') 
    outfile.write('\n'+i)
    outfile.close()
    i=i+1

Я пробовал поставить

outfile.write('\n'+i)
outfile.write('\n',i)
outfile.write('\n'),i
outfile.write(i)

Но ни один из них не работает, можете ли вы сказать мне, что я делаю неправильно, пожалуйста?

0
Genís Algans Seguí 15 Дек 2015 в 20:27

4 ответа

Лучший ответ

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

Пытаться:

outfile.write(str(i) + '\n')
0
tpearse 15 Дек 2015 в 17:36

Вы открываете / закрываете свой файл на каждой итерации цикла while. Зачем переусердствовать? Вы можете легко сделать работу, как только файл открыт.

Кроме того, вы пытаетесь написать '\ n' (это строка) плюс i (что является целым числом). Это неправильно, и вам нужно конвертировать ваш i в строку тоже.

Попробуйте этот код:

with open('text.txt', 'w') as f:
    for i in range(11):
        f.write(str(i) + '\n')

Надеюсь, это поможет.

2
vrs 15 Дек 2015 в 17:38

Пытаться:

while(i<11):
    outfile = open('text.txt', 'a') 
    outfile.write('\n'+str(i))
    outfile.close()
    i=i+1

Я получаю text.text с 0-10 на отдельных строках с пустой строкой вверху.

0
juanpa.arrivillaga 15 Дек 2015 в 17:37

Предполагая, что вы хотите файл, который выглядит следующим образом:

1
2
3
4
5
6
7
8
9

Вы так пробовали?

>>> fo = open('outfile.txt', 'w')
>>> for i in range(1,10):
...     fo.write(str(i)+"\n")
>>> fo.close()

Ошибка, которую вы, вероятно, получаете, это:

Ошибка типа: неподдерживаемые типы операндов для +: 'int' и 'str'

Это потому, что вы пытаетесь объединить строку и целое число. C Преобразуйте целое число (i) в строку, заключив ее в str()

0
letsc 15 Дек 2015 в 17:36