python标准库介绍——16 shutil模块详解

时间:2022-05-11 03:45:50
``shutil`` 实用模块包含了一些用于复制文件和文件夹的函数. 
[Example 2-4 #eg-2-4] 中使用的 ``copy`` 函数使用和 Unix 下 ``cp`` 命令基本相同的方式复制一个文件.

====Example 2-4. 使用 shutil 复制文件====[eg-2-4]

```
File: shutil-example-1.py

import shutil
import os

for file in os.listdir("."):
    if os.path.splitext(file)[1] == ".py":
        print file
        shutil.copy(file, os.path.join("backup", file))

*B*aifc-example-1.py
anydbm-example-1.py
array-example-1.py
...*b*
```

``copytree`` 函数用于复制整个目录树 (与 ``cp -r`` 相同), 而 ``rmtree`` 函数用于删除整个目录树 
(与 ``rm -r`` ). 如 [Example 2-5 #eg-2-5] 所示.

====Example 2-5. 使用 shutil 模块复制/删除目录树====[eg-2-5]

```
File: shutil-example-2.py

import shutil
import os

SOURCE = "samples"
BACKUP = "samples-bak"

# create a backup directory
shutil.copytree(SOURCE, BACKUP)

print os.listdir(BACKUP)

# remove it
shutil.rmtree(BACKUP)

print os.listdir(BACKUP)

*B*['sample.wav', 'sample.jpg', 'sample.au', 'sample.msg', 'sample.tgz',
...
Traceback (most recent call last):
 File "shutil-example-2.py", line 17, in ?
   print os.listdir(BACKUP)
os.error: No such file or directory*b*
```

 

相关文章