Shutil.move(src, dst) 是我认为可以完成这项工作的方法,但是,根据 python 2 文档:
Shutil.move(src, dst) 递归地将文件或目录 (src) 移动到另一个位置 (dst)。
如果目标是现有目录,则 src 会移动到该目录内。如果目标已经存在但不是目录,则它可能会被覆盖,具体取决于 os.rename() 语义。
这与我的情况有点不同,如下所示:
搬家前: https: //snag.gy/JfbE6D.jpg
shutil.move(staging_folder, final_folder)
Run Code Online (Sandbox Code Playgroud)
搬家后:
这不是我想要的,我希望将暂存文件夹中的所有内容移至文件夹“final”下,我不需要“staging”文件夹本身。
如果您能提供帮助,我们将不胜感激。
谢谢。
您可以将staging_foldershutil.copytree()中的所有内容移动到Final_folder ,而无需移动staging_folder。调用函数时传递参数。copy_function=shutil.move
对于 Python 3.8:
shutil.copytree('staging_folder', 'final_folder', copy_function=shutil.move, dirs_exist_ok=True)
Run Code Online (Sandbox Code Playgroud)
对于 Python 3.7 及以下版本:
请注意,该参数dirs_exist_ok不受支持。目标Final_folder 不得已存在,因为它将在移动过程中创建。
shutil.copytree('staging_folder', 'final_folder', copy_function=shutil.move)
Run Code Online (Sandbox Code Playgroud)
>>> os.listdir('staging_folder')
['file1', 'file2', 'file3']
>>> os.listdir('final_folder')
[]
>>> shutil.copytree('staging_folder', 'final_folder', copy_function=shutil.move, dirs_exist_ok=True)
'final_folder'
>>> os.listdir('staging_folder')
[]
>>> os.listdir('final_folder')
['file1', 'file2', 'file3']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9668 次 |
| 最近记录: |