移动临时文件的 pythonic 方式



据我所知,open()真的很io.open()os.open()
的高级"包装器"。对于其他文件操作,例如重命名和删除文件,我必须使用os功能,例如os.removeos.rename文件,在某些情况下甚至shutil.move,如下所示:

import shutil
with open("/tmp/workfile", "w") as f:
f.write("some stuff")
shutil.move(f.name, "finalfile")

为什么没有类似的包装器,例如打开删除/重命名?

有没有更好,也许更pythonic的方式来完成上述任务?

必须进行导入而不是在f中重命名和删除 be 方法似乎很奇怪,将其指向另一个文件。特别是当open()不需要导入时。

编辑:我删除了最后似乎激怒了很多人的del f。我知道不需要。我在那里强调不再指向已删除文件的f对象几乎没有用处。

@micke,想打赌这是由于历史吗?我猜open函数是最早添加到 Python 中的函数之一,因为......语言的创造者很早就需要它。

我认为将open作为内置函数很奇怪,而不是相反。

另请注意,您在with块之外使用变量f。并且当with块退出时,closef会自动调用,因此不需要del f语句。这就是使用with块的全部意义(忘记.close()是一个非常常见的错误(

最新更新