Поэтому у меня есть архив, где есть число, скажем, 1, и я хочу создать программу, которая читает это 1, затем добавляет 1, так что 1 + 1 = 2, а затем печатает в архиве 2, так что теперь есть только 2 в архиве. Что я сделал это

outfile = open('text.txt', 'r')
m=outfile.readline()
g=m+1
outfile.close()
outfile = open('text.txt', 'w')
outfile.write(str(g))
outfile.close()

Но он продолжает говорить:

TypeError: can't concatenate 'str' and 'int' objects

Я знаю ошибку, которую я делаю ... но я не могу ее исправить. Помоги мне в этом? Спасибо, умнее людей!

-3
Genís Algans Seguí 15 Дек 2015 в 22:41

3 ответа

Лучший ответ

Ну, это то, что говорит вам «ошибка». Вы пытаетесь «добавить» строку с целым числом.

Когда вы читаете из файла, вы читаете текст. Таким образом, вы должны преобразовать текст, который вы читаете, в целое число.

Если вы точно знаете, что у вас есть в каждой строке, вы можете просто использовать приведение g = int(m) +1

0
tglaria 15 Дек 2015 в 19:46

Когда вы читаете m, это строка. Вам нужно привести его к int перед добавлением 1.

with open("text.txt") as inf:
    m = inf.read()

g = int(m) + 1

with open("text.txt", "w") as outf:
    outf.write(str(g))
1
Hugh Bothwell 15 Дек 2015 в 19:43

Я думаю, что вы задавали подобный вопрос ранее, и у вас была ОДНА И ТО ЖЕ проблема, вы пытаетесь объединить strings и integers.

Измените это на это - g=int(m)+1

0
letsc 15 Дек 2015 в 19:44