繁体   English   中英

python os.rename目录不为空

[英]python os.rename directory not empty

我正在尝试执行mv test-dir/* ./但是在python中。 我编写了以下代码,但引发OSError: [Errno 66] Directory not empty:

import os    
os.rename(
    os.getcwd() + '/test-dir',
    os.path.abspath(os.path.expanduser('.')))

您要告诉操作系统移动test-dir ,而不是其内容。 它通常会替换目标( .在这种情况下),但这个目标显然不是空的,所以隐含的rmdir失败。 即使不为空,也可能无法删除或替换. 名称。

外壳*是一个glob ,它将扩展到test-dir每个对象,您可以单独移动它们; 但是,您希望将它们的名称传输到目标目录,即test-dir/foobar./foobar os.path.basename可以帮助您提取该部分。

您可能要使用shutil.move()将文件从一个目录迭代地移动到另一个目录。
例如,

import os
import shutil

from_dir = os.path.join(os.getcwd(),"test-dir")
to_dir = os.path.abspath(os.path.expanduser('.'))

for file in os.listdir(from_dir):
    shutil.move(os.path.join(from_dir, file), to_dir)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM