转自 http://www.cnblogs.com/sunyang945/p/7900927.html
#文件操作(写入文件,读取文件) #写入文件 #1.打开文件(打开冰箱) fp = open(‘test.txt‘,‘w‘) print(fp,type(fp)) #2.写入文件(把大象塞进去) fp.write(‘什么时候你会觉得不再年轻了?‘) #3.关闭文件(关上冰箱) fp.close() #读取文件 #1.打开文件(打开冰箱) fp = open(‘test.txt‘,‘r‘) #print(fp) #2.读取文件(把大象拿出来) txt = fp.read() print(txt) #3.关闭文件(把冰箱门关闭) fp.close() #文件常用函数 #open() 打开或者新建一个文件 ‘‘‘ open(‘文件路径‘,‘打开模式‘) #基本模式 w write 写入模式 1.文件不存在则新建文件,文件已存在,打开并且清空文件 2.该模式下只能进行写入操作 r read 读取模式 1.文件不存在则报错,文件已存在则打开文件,将指针指向文件的开头 2.该模式下只能进行读取操作 a append 追加模式 1.文件不存在则新建文件,文件已存在则打开文件,将指针指向文件结尾 2.该模式下只能进行写入操作 x xor 异或模式 1.文件已存在则报错,文件不存在则新建文件 2.该模式下只能进行写入操作 #扩展模式(不能单独使用必须和基本模式一起用) + plus 增强模式 可以使得任何基本模式变成读写模式 b bytes 位模式 获取数据或者写入数据的类型为bytes类型 ‘‘‘ #增强模式 fp = open(‘wangwang.txt‘,‘w+‘) #写入操作 fp.write(‘四处张望‘) #将指针设置为开头位置 fp.seek(0) #读取操作 result = fp.read() print(result) fp.close() #bytes模式 涉及到一个bytes的数据类型 content = ‘喵星人为啥不能作为警猫呢?‘ result = content.encode()#编码操作 print(result) fp = open(‘miaomiao.txt‘,‘wb‘) fp.write(result) fp.close() fp = open(‘miaomiao.txt‘,‘rb‘) result = fp.read() print(result.decode())#解码操作 fp.close() #read() 读取文件内容 fp = open(‘miaomiao.txt‘,‘r‘) #读取所有内容 #txt = fp.read() #读取指定个数的字符 txt = fp.read(5) print(txt) fp.close() #write() 写入文件内容 fp = open(‘miaomiao.txt‘,‘w‘) fp.write(‘kqkyhtk‘) fp.close() #readline() 一次读取一行数据 fp = open(‘question‘,‘r‘) result = fp.readline() result = fp.readline() #读取一行数据的前n个字符 result = fp.readline(5) print(result) fp.close() #readlines() 一次性将文件按行读取到列表当中取 fp = open(‘question‘,‘r‘) #读取所有行 result = fp.readlines() #根据指定的字符长度 读取n行 result = fp.readlines(50) print(result) fp.close() #writelines() 将容器中的数据一次性写入文件 ‘‘‘ txt = [‘一\n‘,‘二\n‘,‘三\n‘,‘四\n‘ fp = open(‘num.txt‘,‘w‘) fp.writelines(txt) fp.close() ‘‘‘ #truncate() 文件截取操作 #fp = open(‘num.txt‘,‘a‘) #这里的长度单位不是字符而是字节 #fp.truncate(2) #fp.close() ‘‘‘ 字符:一个独立存在的文字就是一个字符,无论什么语言什么符号 字节:用于存储数据的基本单位 1TB = 1024GB 1GB = 1024MB 1MB = 1024KB 1KB = 1024B 1B = 8bytes 字符集: 基本的英文编码(1个字节) ascii码 -> 记录英文和数字及部分符号的编码 (128个) 扩展ascii码 -> 增加了ascii码的数量(256个) 制作特定语言的编码(2个字节[针对汉字]) gb2312编码 -> 存储了5000个常用汉字 gb10800编码-> 扩充了汉字数量 gbk编码 -> 包含了所有汉字 big5编码 -> 繁体中文编码 制作世界统一编码(3个字节[针对汉字]) utf-8 包含世界上绝大部分的文字的编码 utf-16 包含世界上绝大部分的文字的编码 ‘‘‘ #文件函数 ‘‘‘ #tell() 获取文件指针的位置(字节) fp = open(‘01.txt‘,‘r‘) #输出当前指针位置 pos1 = fp.tell() print(pos1) #读取内容 result = fp.read() print(result) #输出当前指针位置 pos2 = fp.tell() print(pos2) fp.close() ‘‘‘ #seek() 移动文件指针的位置 fp = open(‘01.txt‘,‘r‘) #获取开始文件指针位置 print(fp.tell) #移动指针 fp.seek(9) #获取开始文件指针位置 print(fp.tell()) #读取文件 result = fp.read() print(result) fp.close()
#shutil模块 高级文件处理模块 import shutil #copy() 复制文件 #result = shutil.copy(‘/home/sy/下载/001‘,‘/home/sy/文档/002‘) #print(result) #copy2() 复制文件,保留原有数据信息 #result = shutil.copy2(‘/home/sy/下载/001‘,‘/home/sy/文档/003‘) #print(result) #copyfileobj() 将一个文件的内容拷贝到另一个文件当中 #result = shutil.copyfileobj(open(‘01.txt‘,‘r‘)),open(‘02.txt‘,‘a‘) #print(result) #copyfile() 将一个文件的内容拷贝到另一个文件当中 copyfileobj(open(,‘r‘),open(,‘w‘)) #result = shutil.copyfile(‘01.txt‘,‘02.txt‘) #print(result) #copytree() 复制整个目录 #result = shutil.copytree(‘/home/sy/PycharmProjects/python3/11.9‘,‘/home/sy/my11.9‘) #print(result) #copymode() 拷贝权限 #result = shutil.copymode(‘/home/sy/文档/canzhao‘,‘/home/sy/文档/mode‘) #print(result) #copystat() 拷贝元数据 #result = shutil.copystat(‘/home/sy/文档/002‘,‘/home/sy/文档/stat‘) #print(result) #rmtree() 删除整个目录 #result = shutil.rmtree(‘/home/sy/下载/py) #move() 移动文件或者目录 #result = shutil.move(‘/home/sy/下载/001‘,‘/home/sy/文档/001‘) #result = shutil.move() #which() 检测命令文件所在的文件夹 #result = shutil.which(‘reboot‘) #print(result) #disk_usage() 查看磁盘使用量 result = shutil.disk_usage(‘/‘) print(result) #make_archive() 制作归档文件(将指定的文件夹归档成一个文件) #result = shutil.make_archive(‘/home/sy/下载/guidang‘,‘zip‘,‘/home/sy/PycharmProjects‘) #print(result) #unpack_archive() 解包归档文件 #result = shutil.unpack_archive(‘/home/sy/下载/myguidang.zip‘,‘/home/sy/文档‘) #print(result) #get_archive_formats() 获取归档允许使用的类型 #result = shutil.get_archive_formats() #print(result) #get_unpack_formats() 获取系统解包的文件类型(包含类型对应的后缀) #result = shutil.get_unpack_formats() #print(result) 复制代码
压缩与解压 #zip模块 import zipfile ‘‘‘ #压缩操作 #1.创建压缩文件 zp = zipfile.ZipFile(‘./11.6.zip‘,‘w‘,zipfile.ZIP_STORED,True) #print(zp) #2.向压缩文件中添加内容 #zp.write(‘/home/sy/文档/001‘,‘001‘) #zp.write(‘/home/sy/文档/002‘,‘00-2‘) zp.write(‘./getdirsize.py‘,‘mydir/gdp.py‘) #3.关闭压缩文件 zp.close() ‘‘‘ #解压缩文件 #1.打开压缩文件 zp = zipfile.ZipFile(‘./11.6.zip‘,‘r‘) print(zp) #2.解压操作 #指定文件 #zp.extract(‘00-2‘,‘/home/sy/下载‘) #全部文件 #zp.extractall(‘./boys‘) #3.关闭文件 zp.close() #tar模块 import tarfile ‘‘‘ #1.打开压缩文件 tp = tarfile.open(‘./07.tar‘,‘w:bz2‘) print(tp) #2.添加内容 压缩文件 tp.add(‘01.py‘,arcname= ‘1.py‘) tp.add(‘02.py‘,arcname= ‘2.py‘) tp.add(‘01.txt‘,arcname= ‘txt/1.txt‘) #3.关闭压缩文件 tp.close() ‘‘‘ #解压操作 #1.打开压缩文件 tp = tarfile.open(‘07.tar‘,‘r‘) #2.解压文件 #解压所有文件 #tp.extractall(‘./girls‘) #解压指定文件 tp.extract(‘1.py‘,‘/home/sy‘) #3.关闭压缩文件 tp.close()