用Python方式移动临时文件

时间:2018-09-18 14:21:56

标签: python python-3.x file

从我收集到的信息来看,open()确实是io.open()的{​​{1}}的高级“包装”。
对于其他文件操作(如重命名和删除文件),我必须使用os.open()函数,例如osos.remove文件,甚至在某些情况下甚至使用os.rename,如下所示:

shutil.move

为什么没有类似的包装纸需要打开才能进行移除/重新命名?

完成上述任务是否有更好的,也许更Python的方式?

不得不进行导入而不是在import shutil with open("/tmp/workfile", "w") as f: f.write("some stuff") shutil.move(f.name, "finalfile") 中进行重命名和删除be方法,将其指向另一个文件似乎很奇怪。特别是当f不需要导入时。

编辑:最后,我删除了open(),这似乎激怒了很多人。我知道这不是必需的。我在那里强调了一个不再指向已删除文件的del f对象的用途。

1 个答案:

答案 0 :(得分:0)

@micke,想打赌这是因为历史吗?我猜想open函数是Python中第一个添加的函数,因为……语言的创建者早就需要这样做。

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

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