我将如何在 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 许可协议
我将如何在 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 许可协议
尽管 os.rename()
和 shutil.move()
都会重命名文件,但最接近 Unix mv 命令的命令是 shutil.move()
。不同之处在于 os.rename()
如果源和目标位于不同的磁盘上则不起作用,而 shutil.move()
文件磁盘不可知。
原文由 Jim Calfas 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
os.rename()
,os.replace()
, 或shutil.move()
都使用相同的语法:
请注意,您必须在源参数和目标参数中包含文件名 (
file.foo
)。如果更改,文件将被重命名和移动。另请注意,在前两种情况下,创建新文件的目录必须已经存在。在 Windows 上,不得存在具有该名称的文件,否则将引发异常,但
os.replace()
即使在这种情况下也会以静默方式替换文件。正如在其他答案的评论中所指出的那样,
shutil.move
os.rename
。但是,如果目标位于与源不同的磁盘上,它将改为复制然后删除源文件。