Форум сайта python.su
всем привет
Можете помочь с обработки файлов
Программа должна быть загружена с файлом expression.txt. Структура файла такова, что каждая строка представляет выражение в следующем формате:
4-1
12-3
формат такой: <Число> <число>
Должна быть написана программа, которая будет считывать файл построчно, применять данную операцию и записывать результат вместе с соответствующим выражением в файл output.txt.
Внешний вид файла output.txt:
4-1 = 3
12-3 = 9
Прикреплённый файлы: expression.txt (9 байт)
Офлайн
vexamdКонечно можем. Действуете так.
Можете помочь с обработки файлов
Офлайн
doza_and
Я сделал так
def sub(a, b):
return a-b
with open ('./expression.txt', ‘r’) as f:
lines = f.readlines()
for l in lines:
if l == ‘-’:
lines = sub
with open ('./output.txt', ‘w’) as g:
g.write(lines(int(l), int(l)))
g.close()
и не получается пишет ошибка TypeError: write() argument must be str, not int
Прикреплённый файлы: example.rar (366 байт)
Офлайн
vexamd
Программа должна быть загружена с файлом expression.txt. Структура файла такова, что каждая строка представляет выражение в следующем формате:
4-1
12-3
формат такой: <число><минус><число>
Должна быть написана программа, которая будет считывать файл построчно, применять данную операцию и записывать результат вместе с соответствующим выражением в файл output.txt.
Внешний вид файла output.txt:
4-1 = 3
12-3 = 9
vexamd
Я сделал такdef sub(a, b): return a-b with open ('./expression.txt', 'r') as f: lines = f.readlines() for l in lines: if l[1] == '-': lines = sub with open ('./output.txt', 'w') as g: g.write(lines(int(l[0]), int(l[2]))) g.close()
Отредактировано py.user.next (Янв. 7, 2021 01:54:02)
Офлайн
vexamdКонкретно по этой ошибке если не знаете английского то используйте google translate.
write() argument must be str, not
lines = sub
if l[1] == '-'
Отредактировано doza_and (Янв. 7, 2021 21:21:16)
Офлайн
py.user.next
Получилось
резултат показывает правельно
def sub(a, b):
return a-b
with open ('./expression.txt', ‘r’) as f:
with open ('./output.txt', ‘w’) as g:
lines = f.readlines()
for l in lines:
if ‘-’ in l:
operands = l.split('-')
rez = sub(int(operands), int(operands))
g.write(operands + “-” + operands.rstrip() + “=” + str(rez) + “\n”)
Отредактировано vexamd (Янв. 7, 2021 23:18:26)
Офлайн
Спасибо
Офлайн