《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第9章 组织文件】
2018-03-08 21:43
1121 查看
1. shutil 模块
1) 复制文件和文件夹
shutil.copy(source, destination),将路径source下的文件复制到路径destination处的文件夹(source 和 destination 都是字符串)。如果 destination 是一个文件名,它将作为被复制文件的新名字。该函数返回一个字符串,表示被复制文件的路径。示例:>> import shutil, os>>> os.chdir('C:\\')
>>> shutil.copy('C:\\spam.txt', 'C:\\delicious')
'C:\\delicious\\spam.txt'
>>> shutil.copy('eggs.txt', 'C:\\delicious\\eggs2.txt')
'C:\\delicious\\eggs2.txt'shutil.copytree(source, destination),将路径source 处的文件夹,包括它的所有文件和子文件夹,复制到路径 destination 处的文件夹。示例:>>> import shutil, os
>>> os.chdir('C:\\')
>>> shutil.copytree('C:\\bacon', 'C:\\bacon_backup')
'C:\\bacon_backup'
2) 文件和文件夹的移动与改名
shutil.move(source, destination),将路径 source 处的文件夹移动到路径destination,并返回新位置的绝对路径的字符串。示例:>>> import shutil>>> shutil.move('C:\\bacon.txt', 'C:\\eggs')
'C:\\eggs\\bacon.txt'目的地的文件夹必须已经存在,否则 Python 会抛出异常。
3) 永久删除文件和文件夹
利用 os 模块中的函数,可以删除一个文件或一个空文件夹。但利用 shutil 模块,可以删除一个文件夹及其所有的内容。• 用 os.unlink(path)将删除 path 处的文件。
• 调用 os.rmdir(path)将删除 path 处的文件夹。该文件夹必须为空,其中没有任
何文件和文件夹。
• 调用 shutil.rmtree(path)将删除 path 处的文件夹,它包含的所有文件和文件夹都
会被删除。
4) 用 send2trash 模块安全地删除
使用第三方的send2trash模块,可以将删除的文件或者目录发送到计算机的回收站,而不是永久删除他们。但是,send2trash()函数只能将文件送到垃圾箱,不能从中恢复文件。示例:>>> import send2trash>>> send2trash.send2trash('G:\\test.py')
>>> print(send2trash.send2trash('G:\\test.py'))
None
2. 遍历目录树
os.walk()在循环的每次迭代中,返回 3 个值:1.当前文件夹名称的字符串。
2.当前文件夹中子文件夹的字符串的列表。
3.当前文件夹中文件的字符串的列表。
所谓当前文件夹,是指 for 循环当前迭代的文件夹。程序的当前工作目录,不会因为 os.walk()而改变。示例;import os
for folderName, subfolders, filenames in os.walk('G:'):
# 当前目录名称 foldername
print('当前目录是: ' + folderName)
#当前目录中子目录字符串列表 subfolders
for subfolder in subfolders:
print('当前目录 ' + folderName + ' 包含字子目录: ' + subfolder)
#当前目录中文件的字符串列表
for filename in filenames:
print('当前目录 ' + folderName + ' 包含文件: '+ filename)
print('')
3. 用 zipfile 模块压缩文件
1) 读取 ZIP 文件
要读取zip的内容,可以使用zipfile模块。使用zipfile.ZipFile()方法可以得到一个ZipFile对象。ZipFile 对象有一个 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夹的字符串的列表。
这些字符串可以传递给 ZipFile 对象的 getinfo()方法,返回一个关于特定文件的 ZipInfo 对象。ZipInfo 对象有自己的属性,诸如表示字节数的 file_size和 compress_size,它们分别表示原来文件大小和压缩后文件大小。
ZipFile 对象表示整个归档文件,而 ZipInfo 对象则保存该归档文件中每个文件的有用信息。示例:>>> import zipfile, os
>>>exampleZip = zipfile.ZipFile('G:\\example.zip')
>>> exampleZip.namelist()
['spam.txt', 'cats/', 'cats/catnames.txt', 'cats/zophie.jpg']
>>> spamInfo = exampleZip.getinfo('spam.txt')
>>> spamInfo.file_size
13908
>>> spamInfo.compress_size
3828
2) 从 ZIP 文件中解压缩
ZipFile 对象的 extractall(path)方法从 ZIP 文件中解压缩所有文件和文件夹到path路径中。如果path省略,那么就会解压到当前目录中;如果path不存在会被创建。>>> import zipfile>>> exampleZip = zipfile.ZipFile('F:\\example.zip')
>>> exampleZip.extractall()
>>> exampleZip.close()
ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。示例:>>> exampleZip.extract('spam.txt')
'C:\\spam.txt'
>>> exampleZip.extract('spam.txt','C:\\some\\new\\folders')
'C:\\some\\new\\folders\\spam.txt'
>>> exampleZip.close()
3) 创建和添加到 ZIP 文件
要创建zip文件,就必须以“写模式”打开ZipFile对象。向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩算法,它对各种类型的数据都很有效)。示例:>>> import zipfile>>> newZip = zipfile.ZipFile('new.zip', 'w')
>>> newZip.write('spam.txt',compress_type=zipfile.ZIP_DEFLATED)
>>> newZip.close()
相关文章推荐
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第8章 读写文件】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第14章 处理CSV文件和JSON数据】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第3章 函数】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第11章 从Web抓取信息】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第7章 模式匹配与正则表达式(2)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第13章 处理PDF和Word文档(1)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第12章 处理Excel电子表格】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第13章 处理PDF和Word文档(2)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第16章 发送电子邮件和短信(2)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第2章 控制流】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第10章 调试】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第18章 用 GUI 自动化控制键盘和鼠标】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第4章 列表】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第5章 字典和结构化数据】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第15章 保持时间,计划任务和启动程序】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第16章 发送电子邮件和短信(1)】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第1章 Python基础】
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记序
- 《Python 编程快速上手 — 让繁琐工作自动化》读书笔记之【第6章 字符串操作】
- Python编程快速上手——让繁琐工作自动化学习笔记