- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将文件夹删除后复制到另一个文件夹:
for i in range(0,3):
try:
dir_util.remove_tree("D:/test2")
# shutil.rmtree("D:/test2")
print "removed"
except: pass
dir_util.copy_tree("D:/test1", "D:/test2")
print i
D:/test1 包含一个名为 test_file 的空文件。如果我使用 dir_util.remove_tree 它工作正常,但在 shutil.rmtree 之后它只工作一次,在第二次迭代时失败。输出:
removed
0
removed
Traceback (most recent call last):
File "test.py", line 53, in <module>
dir_util.copy_tree("D:/test1", "D:/test2")
File "C:\Python27\lib\distutils\dir_util.py", line 163, in copy_tree
dry_run=dry_run)
File "C:\Python27\lib\distutils\file_util.py", line 148, in copy_file
_copy_file_contents(src, dst)
File "C:\Python27\lib\distutils\file_util.py", line 44, in _copy_file_contents
fdst = open(dst, 'wb')
IOError: [Errno 2] No such file or directory: 'D:/test2\\test_file'
我使用 shutil.rmtree 更方便,因为它允许删除只读文件的错误处理。dir_util.remove_tree 和 shutil.rmtree 有什么区别?为什么在第二次 rmtree 之后 copy_tree 不起作用?
我在 Windows 7 上运行 Python 2.7.2
最佳答案
似乎是 distutils 中的错误。如果你复制文件夹,然后删除它,然后再次复制它会失败,因为它缓存了所有创建的目录。要解决此问题,您可以在复制前清除 _path_created:
distutils.dir_util._path_created = {}
distutils.dir_util.copy_tree(src, dst)
关于python - dir_util.copy_tree 在 shutil.rmtree 之后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160227/
我使用的是 Python 2.6。我使用dir_util.copy_tree函数复制文件,想在命令行查看复制了哪些文件。但是,它永远不会打印出来,即使我指定了 verbose=1!这是一个已知的错误,
我做了一个小应用程序,基本上在某个时候我调用 distutils.dir_util.copy_tree 将文件复制到目的地。谁能帮我链接一个基本的进度条,例如: [======]50% 复制过程...
我正在尝试在 Windows 7 64 位上使用 distutils.dir_util。据我从各种谷歌搜索中收集到的信息,我可能需要单独安装一些 distutils 包?我确实有可用的基本 distu
我正在尝试将文件夹删除后复制到另一个文件夹: for i in range(0,3): try: dir_util.remove_tree("D:/test2") # sh
我是一名优秀的程序员,十分优秀!