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

#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. Я отредактировал ответ, попробуйте сейчас, он работает для меня локально