如何在 Python 中移动文件?

新手上路,请多包涵

我将如何在 Python 中执行相当于 mv src/* dest/ 的操作?

 >>> source_files = '/PATH/TO/FOLDER/*'
>>> destination_folder = 'PATH/TO/FOLDER'
>>> # equivalent of $ mv source_files destination_folder

原文由 David542 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 820
2 个回答

os.rename() , os.replace() , 或 shutil.move()

都使用相同的语法:

 import os
import shutil

os.rename("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
os.replace("path/to/current/file.foo", "path/to/new/destination/for/file.foo")
shutil.move("path/to/current/file.foo", "path/to/new/destination/for/file.foo")

请注意,您必须在源参数和目标参数中包含文件名 ( file.foo )。如果更改,文件将被重命名和移动。

另请注意,在前两种情况下,创建新文件的目录必须已经存在。在 Windows 上,不得存在具有该名称的文件,否则将引发异常,但 os.replace() 即使在这种情况下也会以静默方式替换文件。

正如在其他答案的评论中所指出的那样, shutil.move os.rename 。但是,如果目标位于与源不同的磁盘上,它将改为复制然后删除源文件。

原文由 ig0774 发布,翻译遵循 CC BY-SA 4.0 许可协议

尽管 os.rename()shutil.move() 都会重命名文件,但最接近 Unix mv 命令的命令是 shutil.move() 。不同之处在于 os.rename() 如果源和目标位于不同的磁盘上则不起作用,而 shutil.move() 文件磁盘不可知。

原文由 Jim Calfas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题