我正在尝试使用 fileinput 模块对文件进行就地编辑,但它似乎不想工作。
我正在使用的代码:
for line in fileinput.FileInput(complaint_db, inplace=True, backup=(complaint_db + ".backup")):
print("Started replacement")
if line == myline:
pass
else:
print(line)
修改了备份参数,因为我认为它可能会修复错误,但它没有。该文件在我运行此命令之前不存在(我已经检查了一百次),之后也不存在。我正在我的主目录中创建文件,所以应该没有错误。
这是完整的错误:
builtins.PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'c:\\Users\\Cody\\Documents\\ComplaintManagement\\complaints.dbc:\\Users\\Cody\\Documents\\ComplaintManagement\\complaints.db.backup'
我想另一个问题是,我如何检查原始的投诉.db 是否在文件中的某个位置打开而不知道它可能在哪里打开。如果是这样,我可以从代码中的任何位置随意关闭它吗?
我不能执行 f.close ,因为此时代码中不会定义 f 。我试过 os.close(complaint_db) (complaint_db 是一个保存数据库位置的通用变量)。它不起作用,因为它需要一个 int,所以我现在有点迷路了。