如何在Python中移动文件?

2022-09-05 00:59:11

我该如何做相当于Python的?mv src/* dest/

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

答案 1

os.rename()os.replace(), or 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.moveos.rename


答案 2

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