python os.rename目录不为空

python os.rename目录不为空,python,python-os,Python,Python Os,我试图用python来做mv test dir/*./。我已经编写了以下代码,但是抛出了OSError:[Errno 66]目录不是空的: import os os.rename( os.getcwd() + '/test-dir', os.path.abspath(os.path.expanduser('.'))) 您告诉操作系统移动测试目录,而不是它的内容。它通常会替换目标(在本例中为),但该目标显然不是空的,因此隐式rmdir失败。即使它不是空的,也可能无法删除或

我试图用python来做mv test dir/*./。我已经编写了以下代码,但是抛出了
OSError:[Errno 66]目录不是空的:

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

您告诉操作系统移动
测试目录
,而不是它的内容。它通常会替换目标(在本例中为
),但该目标显然不是空的,因此隐式
rmdir
失败。即使它不是空的,也可能无法删除或替换
名称

shell
*
是一个,它将扩展到
test dir
中的每个东西,您可以单独移动这些东西;但是,您希望将它们的名称转移到目标目录,即
testdir/foobar
/foobar
。可以帮你提取那部分

您可能希望使用以迭代方式将文件从一个目录移动到另一个目录。
比如说,

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)

我可以通过子流程调用使用
mv
@abc