python 文件操作(三),,转自 http://



转自 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()

python 文件操作(三)

评论关闭