尝试用创建的临时文件替换原始文件

GohanP

我想在一个文件中进行一些更改。为此,我正在做一个临时文件,在其中写入所有需要的更改的内容,最后,我尝试用此临时文件替换原始文件。

临时文件已创建,看起来像我预期的那样,但是替换操作不起作用。

这是我的代码失败:

with tempfile.NamedTemporaryFile(mode='w', prefix=basename, dir=dirname, delete=False) as temp, open(file_path, 'r') as f:
    for line in f:
        temp.write(line + " test")
    os.replace(temp.name, file_path)

但这给我一个错误:

PermissionError:[WinError 32]该进程无法访问文件,因为它正在被另一个进程使用

我对“替换”功能的使用是否错误?

A.专栏

您的命令os.replace(temp.name,file_path)必须与with一起使用。

with tempfile.NamedTemporaryFile(mode='w', prefix=basename, dir=dirname, delete=False) as temp, open(file_path, 'r') as f:
    for line in f:
        temp.write(line + " test")
os.replace(temp.name, file_path)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章