[英]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.