标签: shutil

如何使用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万
查看次数

使用python将目录内容复制到目录中

我有一个目录/ a/b/c,它有文件和子目录.我需要复制/ x/y/z目录中的/ a/b/c/*.我可以使用哪些python方法?

我试过shutil.copytree("a/b/c", "/x/y/z"),但python尝试创建/ x/y/z并引发一个error "Directory exists".

python shutil copytree

64
推荐指数
1
解决办法
8万
查看次数

"访问被拒绝",Windows上的shutil.rmtree失败

在Python中,当shutil.rmtree在包含只读文件的文件夹上运行时,将打印以下异常:

 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 216, in rmtree
   rmtree(fullname, ignore_errors, onerror)
 File "C:\Python26\lib\shutil.py", line 221, in rmtree
   onerror(os.remove, fullname, sys.exc_info())
 File "C:\Python26\lib\shutil.py", line 219, in …
Run Code Online (Sandbox Code Playgroud)

python windows file-permissions shutil

62
推荐指数
3
解决办法
5万
查看次数

python通过通配符复制文件

我正在学习python(python 3),我可以通过执行此操作将1个文件复制到新目录

import shutil 
shutil.copyfile('C:/test/test.txt', 'C:/lol/test.txt')
Run Code Online (Sandbox Code Playgroud)

我现在要做的是将所有*.txt文件从C:/复制到C:/ test

*.txt是一个通配符,用于搜索硬盘上的所有文本文件

python glob copy file shutil

49
推荐指数
2
解决办法
4万
查看次数

shutil.rmtree()澄清

我已经阅读了这个函数的文档,但是,我不认为我理解它.如果有人能告诉我我错过了什么,或者我是否正确,那将是一个很大的帮助.这是我的理解:

使用该shutil.rmtree(path)函数,它将只删除指定的目录,而不是整个路径.IE:

shutil.rmtree('user/tester/noob')

使用这个,它只会删除'noob'目录正确吗?不是完整的路径?

python shutil python-2.7

40
推荐指数
3
解决办法
6万
查看次数

如果python中已存在相同的文件名,则移动并替换

以下是将移动和替换单个文件的代码

import shutil
import os
src = 'scrFolder'
dst = './dstFolder/'
filelist = []

files = os.listdir( src )
for filename in files:
 filelist.append(filename)
 fullpath = src + '/' + filename
 shutil.move(fullpath, dst)
Run Code Online (Sandbox Code Playgroud)

如果我执行相同的命令并移动已经存在的文件dst folder我正在获取shutil.Error: Destination path './dstFolder/file.txt' already exists如何移动并替换相同的文件名已经存在

shutil python-2.7

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

使用shutil.make_archive()压缩目录,同时保留目录结构

我正在尝试将名为test_dicomszip文件的目录压缩为test_dicoms.zip使用以下代码命名的zip文件:

shutil.make_archive('/home/code/test_dicoms','zip','/home/code/test_dicoms')

问题是,当我解压缩它时,所有文件都/test_dicoms/被提取到/home/code/而不是文件夹,/test_dicoms/并且所有文件都被提取到/home/code/.所以/test_dicoms/有一个文件调用foo.txt,在我压缩和解压缩foo.txt的路径之后是/home/code/foo.txt相反的/home/code/test_dicoms/foo.txt.我该如何解决?此外,我正在使用的一些目录非常大.我是否需要在代码中添加任何内容以使其成为ZIP64,或者是否足够自动地执行此操作?

以下是创建的存档中的内容:

[gwarner@jazz gwarner]$ unzip -l test_dicoms.zip
Archive: test_dicoms.zip
Length    Date       Time  Name
--------- ---------- ----- ----
    93324 09-17-2015 16:05 AAscout_b_000070
    93332 09-17-2015 16:05 AAscout_b_000125
    93332 09-17-2015 16:05 AAscout_b_000248
Run Code Online (Sandbox Code Playgroud)

python directory zip shutil

24
推荐指数
4
解决办法
3万
查看次数

shutil.rmtree删除只读文件

我想shutil.rmtree在Python中使用删除目录.有问题的目录包含一个.git控制目录,git标记为只读和隐藏.

只读标志导致rmtree失败.在Powershell中,我会"强制"强制删除只读标志.Python中有相应的东西吗?我真的不想两次走完整棵树,但onerrorrmtree 的论据似乎没有重试这个操作,所以我不能用

def set_rw(operation, name, exc):
    os.chmod(name, stat.S_IWRITE)

shutil.rmtree('path', onerror=set_rw)
Run Code Online (Sandbox Code Playgroud)

python shutil

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

shutil(在Python中)是什么意思?

我知道这个模块的用途,我只是不知道为什么他们选择这个名字 - shutil.如果我不知道它来自何处,很难记住这种"随机"名称.请给我一些提示,谢谢.

terminology mnemonics shutil

14
推荐指数
1
解决办法
2337
查看次数

在Python中运行shutil.rmtree(d)后,权限被拒绝执行os.mkdir(d)

通常在Windows 7控制台中,如果我快速运行两次python程序就可以了

if os.path.isdir(d):
    shutil.rmtree(d)
if not os.path.exists(d):
    os.mkdir(d)
Run Code Online (Sandbox Code Playgroud)

哪里d是包含许多文件的目录的名称,我得到mkdir命令的"权限被拒绝" .但是,如果我跑一次,然后等待几秒钟,然后再次运行我没有得到这样的错误.这里有什么问题?

python io shutil

13
推荐指数
1
解决办法
2608
查看次数