#python
#питон
Вопрос:
Поэтому я должен прочитать из текстового файла, который содержит эти строки:
4-1
12-3
После того, как я прочитал этот файл, я должен записать в другой файл результат строк. например ->
4-1=3
12-3=9
До сих пор я делал этот код, но я получаю какую-то ошибку:
with open('C:usersbacutDesktopexpresii.txt', 'r'') as fp:
for line in enumerate(fp):
nr1 = 0
nr2 = 0
ok = 0
for c in line:
if c != '-' and ok == 0:
nr1 = nr1 * 10 int(c)
if c == '-':
ok = 1
if c != '-' and ok == 1:
nr2 = nr2 * 10 int(c)
total = nr1 - nr2
print("{line}={total}".format(line=line, total=total))
Это ошибка:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
2-3: truncated uXXXX escape
Как я могу это сделать? На самом деле я не знаю, как записать результаты в другой файл, но по моей логике этот код должен был генерировать как минимум 12-3 = 9.
Спасибо, и я действительно ценю вашу помощь.
Комментарии:
1. Опубликуйте код, который вам нужно удалить, и выделите ту часть, с которой вы боретесь.
2. Что вы считаете «математическим выражением»? Только целочисленная арифметика, как в
4 - 1
, или более сложные операции, включая переменные или интегралы? Являются ли операторы такими же, как в Python, например, является**
ли оператор power?3. Используйте
r'C:usersbacutDesktopexpresii.txt'
. Обратите внимание наr
префикс и удаленную конечную обратную косую черту. О, и у вас также есть дополнительная одинарная кавычка'r''
.4. Это сделано. Теперь я получаю эту ошибку:
Exception has occurred: ValueError invalid literal for int() with base 10: '4-1n' File "C:UsersbacutDesktopexercitii programare.py", line 9, in <module> nr1 = nr1 * 10 int(c)
Ответ №1:
Вы можете попробовать этот код:
with open(r'C:usersbacutDesktopexpresii.txt', 'r') as fp:
for line in fp:
stripline = line.strip()
linelist = stripline.split("-") # first line: list ["4", "1"]
result = int(linelist[0]) - int(linelist[1])
stripline =("=" str(result) "n")
with open(r'C:usersbacutDesktopresult.txt', 'a') as fr:
fr.write(stripline)
Комментарии:
1. Спасибо за ваш ответ! Я попытался запустить его, но я получил это:
Exception has occurred: AttributeError 'tuple' object has no attribute 'strip' File "C:UsersbacutDesktoplista.py", line 3, in <module> stripline = line.strip()
2. это вызвано enumerate, теперь оно должно быть правильным
3. Еще раз спасибо вам. Извините, что побеспокоил вас, и я действительно ценю работу, которую вы сделали для меня. Я попробовал еще раз, теперь он показывает еще одну ошибку:
Exception has occurred: AttributeError 'str' object has no attribute 'append' File "C:UsersbacutDesktoplista.py", line 6, in <module> line.append("=" str(result))
4. Я отредактировал ответ, попробуйте сейчас, он работает для меня локально