python 模块

一 . shutil  文件处理模块

1 import shutil
2 import os
3 
4 
5 fsrc = open("test", 'r')  # 读取test
6 fdst = open("test2", "w")
7 shutil.copyfileobj(fsrc, fdst, length=1)  # 拷贝文件对象到另一个文件
8 shutil.copyfile("./test", "tmp/aa")  # 拷贝文件到指定目录
1 print(os.stat("test"))
2 shutil.copymode("test", "test2")  # 拷贝文件权限
3 print(os.stat("test2"))
1 shutil.copystat("test", "test2")  # 拷贝文件状态信息,包括atime,mtime
2 print(os.stat("test2"))
3 shutil.copy("test", "test3")  # 仅拷贝文件和权限,状态信息不拷贝
4 print(os.stat("test3"))
5 shutil.copy2("test", "test4")  # 拷贝文件和修改时间mtime
6 print(os.stat("test4"))
7 shutil.ignore_patterns("*est*")  # 忽略文件模式
8 shutil.copytree(".", "tmp", symlinks=False, ignore=shutil.ignore_patterns("*est*", "tmp*"))  # 忽略包含est和tmp开头的文件

 

1 shutil.rmtree(path="tmp", ignore_errors=False, onerror=None)  # 递归删除tmp目录,不忽略错误
2 
3 shutil.move("test2", "test5")  # 把test2 移动到test5.相当于重命名
4 shutil.make_archive("new_test", format="gztar", root_dir="./tmp/")
 1 import zipfile
 2 # 压缩
 3 new_zip = zipfile.ZipFile('new_test.zip', 'w')  # 创建一个归档文件,创建时,模式为'w'
 4 new_zip.write('test3')  # 把test3文件压缩进去
 5 new_zip.write('test4')  # 把test4压缩进去
 6 new_zip.setpassword(b'123')  # 设置压缩密码,测试无效果
 7 new_zip.close()  # 写入关闭
 8 # 解压
 9 new_zip_decompress = zipfile.ZipFile("new_test.zip", 'r')  # 打开压缩包,模式 'r'
10 print(new_zip_decompress.filelist)  # 查看压缩包内文件
11 new_zip_decompress.extractall()  # 解压压缩包
12 new_zip_decompress.close()
1 import tarfile
2 new_tar = tarfile.open('test.tar', 'w')  # 在当前目录新建一个tar压缩文件
3 new_tar.add('test3', arcname='test3')  # 指定压缩文件路径,指定压缩后的名字
4 new_tar.add("test4", arcname="test4")
5 new_tar.close()  # 压缩完毕
6 
7 extra_tar = tarfile.open("test.tar", 'r')
8 extra_tar.extractall()  # 解压所有
9 extra_tar.close()

 

二 . shelve  可持久化数据

 1 import shelve
 2 
 3 new_shelve = shelve.open("shelve_file")  # 打开一个可持久化文件
 4 
 5 d1 = {"k1": "v1", "k2":"v2"}  # 定义要存储的数据
 6 l2 = ["1", '2', 3]
 7 
 8 new_shelve["d1"] = d1  # 存取一个数据到shelve文件,定义格式为key,value形式
 9 new_shelve["l2"] = l2
10 new_shelve.close()  #
 1 print(new_shelve.keys())
 2 print(type(new_shelve.keys()))
 3 print(new_shelve.values())
 4 new_shelve['l3'] = ["110", 112]
 5 test_l1 = new_shelve.get('l2')
 6 print('l2' in new_shelve.keys())  # 判断对象是否存在'l2'键
 7 print(list(new_shelve.keys()))  # 打印当前可持久化数据的键值
 8 for k, v in new_shelve.items():  # 遍历数据
 9     print(k, v)
10 print(test_l1)
11 test_l1.append(33)  # 修改数据
12 print(test_l1)
13 new_shelve['l2'] = test_l1  # 改变可持续化里的数据
14 
15 print(new_shelve['l2'])

三. xml

 

四. configparser

五. pickle & json

六. logging

七.hashlib

八.subprocess 

你可能感兴趣的:(python 模块)