【发布时间】:2022-11-25 09:38:18
【问题描述】:
所以,我是编码新手,我正在为一家虚构的医院制作一个注册系统,它获取用户名、他们拥有的程序和日期,之后它总结了几天(计算回报),然后写在 . txt 文件,但是写入部分不起作用,我该如何解决?抱歉,印刷品和变量是葡萄牙语的。
def cadastrar(arq, nomep , proc , x, y, z, w):
datas = datetime.strptime(w, '%Y-%m-%d')
l = 0
m = 0
n = 0
o = 0
p = 0
try:
a = open(arq, 'r+')
for linha in a:
dados = linha.split(';')
if dados[1] in ['Procedimento X']:
l = datas + \
timedelta(days = 15)
m = datas + \
timedelta(days = 152)
n = datas + \
timedelta(days = 304)
o = datas + \
timedelta(days = 456)
try:
a.write(f'{nomep};{proc};{x}-{y}-{z}\n;{l};{m};{n};{o}')
except:
print('\033[31mErro ao escrever.\033[m')
else:
print(f'\033[92m{nomep} foi cadastrado com sucesso.\033[m')
a.close()
finally:
print('')
我想让它写在 txt 文件上,但突然它就停止工作了,我不知道为什么。
【问题讨论】:
-
欢迎来到堆栈溢出!您可能应该使用
with open():语法而不是a = open(),这样即使程序崩溃,文件也始终关闭。
标签: python python-3.x datetime fopen fwrite