相关疑难解决方法(0)

如何使用Python将整个文件目录复制到现有目录中?

从包含名为bar(包含一个或多个文件)的目录和名为baz(还包含一个或多个文件)的目录的目录中运行以下代码.确保没有名为的目录foo.

import shutil
shutil.copytree('bar', 'foo')
shutil.copytree('baz', 'foo')
Run Code Online (Sandbox Code Playgroud)

它将失败:

$ python copytree_test.py 
Traceback (most recent call last):
  File "copytree_test.py", line 5, in <module>
    shutil.copytree('baz', 'foo')
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", line 110, in copytree
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", line 172, in makedirs
OSError: [Errno 17] File exists: 'foo'
Run Code Online (Sandbox Code Playgroud)

我希望它的工作方式与我输入的方式相同:

$ mkdir foo
$ cp bar/* foo/
$ cp baz/* foo/
Run Code Online (Sandbox Code Playgroud)

我是否需要使用shutil.copy()将每个文件复制bazfoo?(之后我已经将'bar'的内容复制到'foo'中shutil.copytree()?)或者是否有更简单/更好的方法?

python shutil copytree

182
推荐指数
6
解决办法
21万
查看次数

即使文件夹存在,os.path.isdir()也返回False

我正在编写一个脚本,必须检查所有指定的文件夹是否确实存在.我发现我必须使用带有绝对路径的os.path.isdir().

我有以下目录结构:

X:\
  pythonscripts\
    files\
      Films\
      Series\
    src\
Run Code Online (Sandbox Code Playgroud)

当我打开op我的python命令行并尝试文件夹实际存在时,我得到以下内容:

>>> import os
>>> os.path.isdir('X:\pythonscripts\src')
True
>>> os.path.isdir('X:\pythonscripts\files')
False
>>> os.path.isdir('X:\pythonscripts\files\Films')
False
>>> os.path.isdir('X:\pythonscripts\files\Series')
False
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为当我将这些路径复制并粘贴到Windows资源管理器中时,我可以毫无问题地访问它们.我检查了权限,所有文件夹对它们具有相同的权限.有谁知道我做错了什么?

python filesystems

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

copytree ×1

filesystems ×1

shutil ×1