Python语言程序设计 课件 8-文件及文件管理_第1页
Python语言程序设计 课件 8-文件及文件管理_第2页
Python语言程序设计 课件 8-文件及文件管理_第3页
Python语言程序设计 课件 8-文件及文件管理_第4页
Python语言程序设计 课件 8-文件及文件管理_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python语言程序设计PythonLanguageProgramming8文件及文件管理文件对象文件的操作os模块文件对象文件就是一个存储在辅助存储器(通常是在磁盘驱动上)的数据序列文件可以包含任何数据类型,其中最简单的就是文本文件python中字符串与其他类型之间的转换十分容易,所以python的文本文件处理非常灵活文件的操作打开和关闭文件文件的定位文件路径打开和关闭文件打开文件open()函数<variable>=open(<name>,<mode>)参数name为字符串格式,表示要打开的磁盘文件名字;参数mode表示打开模式,具体如表8.1所示文件打开模式含义r只读(默认模式。如果文件不存在,则输出错误)w只写(如果文件不存在,则自动创建文件)a附加到文件末尾rb只读二进制文件(默认模式。如果文件不存在,则输出错误)wb只写二进制文件(如果文件不存在,则自动创建文件)ab附加到二进制文件末尾r++读写表8.1文件打开模式打开和关闭文件打开文件【例8-1】以只读的方式打开一个名为“stu.dat”的文件。【参考代码】>>>infile=open(“stu.dat”,“r”)打开和关闭文件关闭文件close()函数【例8-2】关闭上例中名为“stu.dat”的文件。【参考代码】>>>infile.close()打开和关闭文件读取文件内容文件打开模式含义<file>.read()返回值为包含整个文件内容的一个字符串<file>.readline()返回值为文件下一行内容的字符串。读入结果为一行并包含换行符<file>.readlines()返回值为整个文件内容的列表。每个列表项是以换行符为结尾的一行字符串表8.2文件读取操作打开和关闭文件读取文件内容【例8-3】以二进制的形式读取文件“念奴娇赤壁怀古.txt”【参考代码】>>>f=open('念奴娇赤壁怀古.txt','rb')>>>f<_io.BufferedReadername='念奴娇赤壁怀古.txt'>>>>forxinf: print(x)打开和关闭文件读取文件内容readline()和readlines()>>>file=f.readline()#执行.read()之后,指针已经指向文件末尾,再进行读取操作时,读出的内容为空。>>>file''>>>f.close()#关闭文件>>>f=open('念奴娇赤壁怀古.txt','r',encoding='UTF-8')#再次读取文件>>>file=f.readline()#读取文件的一行,返回字符串>>>file'大江东去,浪淘尽,千古风流人物。\n'>>>file=f.readline()#读取第二行,返回字符串>>>file'\n'>>>file=f.readline()#读取第三行,返回字符串>>>file'故垒西边,人道是,三国周郎赤壁。\n'>>>file=f.readlines()#读取剩余文件,并返回列表>>>file['\n','乱石穿空,惊涛拍岸,卷起千堆雪。\n','\n','江山如画,一时多少豪杰。\n','\n','遥想公瑾当年,小乔初嫁了,雄姿英发。\n','\n','羽扇纶巾,谈笑间,樯橹灰飞烟灭。\n','\n','故国神游,多情应笑我,早生华发。\n','\n','人生如梦,一尊还酹江月。']打开和关闭文件读取文件内容使用seek()方法移动文件指针【例8-4】把一个磁盘文件的内容读到内存并在屏幕上显示出来。【参考代码】f=open('念奴娇赤壁怀古.txt','r',encoding='utf-8')whileTrue:line=f.readline()ifline:print(line)else:break打开和关闭文件写入文件写入文件通过打开文件函数实现,模式选择写模式>>>outfile=open(“stu.dat”,“w”)在打开文件时,如果给出的文件名称不存在,则会创建一个新文件;如果给出文件名的文件存在,python将会删除它并创建一个新的空文件写入信息的格式>>>print("写入内容",file=outfile)写入文件后要使用函数close()对文件进行关闭,只有在文件关闭后磁盘上的文件才会显示变化打开和关闭文件写入文件【例8-5】创建一个新文件f.txt,内容是从0到9的整数,每个数字占一行。【参考代码】file=open('f.txt','w')foriinrange(0,10):file.write(str(i)+'\n')file.close()文件的定位seek()方法移动文件指针seek(n)其中n>=0,seek(0)表示文件指针移动到文件头;n>0时,表示移动到文件头之后的位置,用于任意位置读取内容时或从任意位置覆盖内容。seek(0,2)把文件指针移到文件末尾,用于追加新内容。文件的定位seek()方法移动文件指针【例8-6】当前目录下有一个文本文件abc.txt,请将该文件的最后4个字符复制到另一文件abc_copy.txt。【参考代码】file1=open("abc.txt")file1.seek(3)x=file1.readlines()file2=open("abc_copy.txt",'w')foriinx:file2.write(i.upper())file1.close()file2.close()文件路径seek()方法移动文件指针【例8-6】当前目录下有一个文本文件abc.txt,请将该文件的最后4个字符复制到另一文件abc_copy.txt。【参考代码】file1=open("abc.txt")file1.seek(3)x=file1.readlines()file2=open("abc_copy.txt",'w')foriinx:file2.write(i.upper())file1.close()file2.close()文件路径直接文件名称py文件和需要读写的文件时存储在同一路径下任意路径文件需要加上文件路径>>>infile=open(‘E:/word.txt','r')注意在Python中,文件路径的斜杠和操作系统中文件路径的斜杠方向是不一样的>>>file1=open("c:\\abc.txt")os模块os模块简介语料库的创建os模块简介提供了非常丰富的方法用来处理文件和目录常用方法功能描述name顾名思义就是'名字',这里的名字是指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows返回'nt';Linux返回'posix'。注意该命令不带括号。os.getcwd()全称应该是'getcurrentworkdirectory',获取当前工作的目录,如:返回结果为:'C:\\ProgramFiles\\Python36'。os.listdir(path)列出path目录下所有的文件和目录名(不区分文件和目录),并返回列表。Path参数可以省略。os.walk()生成目录树下的所有文件名os.remove(path)删除path指定的文件,该参数不能省略。os.rmdir(path)删除path指定的目录,该参数不能省略。os.mkdir(path)创建path指定的目录,该参数不能省略。这样只能建立一层,要想递归建立可用:os.makedirs()os.path.isfile(path)判断指定对象是否为文件。是返回True,否则Falseos.path.isdir(path)判断指定对象是否为目录。是True,否则False。os.path.exists(path)检验指定的对象是否存在。是True,否则False.os.path.getsize()获得文件的大小,如果为目录,返回0os.path.abspath()获得绝对路径。os.path.join(path,name)连接目录和文件名,与os.path.split(path)相对。os.path.basename(path)返回文件名os.path.dirname(path)返回文件路径表8.3os模块常用方法os模块简介>>>importos>>>os.getcwd()#获取当前路径'C:\\'>>>'nt'>>>os.listdir('C:\\')#c盘根目录下文件夹和文件名称['$360Section','$RECYCLE.BIN','$WinREAgent','360Rec','360SANDBOX','Boot','bootmgr','BOOTNXT','d03a4fb7655f10cf754baba001d238ee','DocumentsandSettings','DumpStack.log.tmp','hiberfil.sys','Intel','KwDownload','pagefile.sys','ProgramFiles','ProgramFiles(x86)','ProgramData','Recovery','safemon','swapfile.sys','SystemVolumeInformation','tmp','Users','Windows']>>>os.path.isdir('C:\\ProgramData')#判断c盘根目录中ProgramData是否为目录True>>>os.path.exists('C:\\ProgramData')#检验c盘根目录中ProgramData是否存在True语料库的创建语料库语料库作为一个或者多个应用目标而专门收集的,有一定结构的、有代表的、可被计算机程序检索的、具有一定规模的语料的集合本质上讲,语料库实际上是通过对自然语言运用的随机抽样,以一定大小的语言样本来代表某一研究中所确定的语言运用的总体。它一般为某个领域的研究样本文本集合,如司法大数据语料库,在研究某一罪名时,可将该罪名的大量裁判文书集合,形成语料库语料库的创建从文本文件创建语料库文本【例8-7】将文件夹中的txt文档全部读出并转换为文本语料库。【参考代码】importospath='D:\\workstation\\构建语料库\\txt文件\\'#.docx文件所在文件夹path1='D:\\workstation\\构建语料库\\txt文件\\jiaotongzhaoshi.txt'#汇总的txt文件存放位置forfileinos.listdir(path):iffile[-3:]=='txt':判断文件是否为txt文件filepath=path+'/'+file#生成待读取文本文件路径f=open(path1,mode='a')text=open(filepath,'r').read()#循环读取文本文件内容f.write(text)#写入汇总文件f.close()语料库的创建从docx文件创建语料库文本【例8-8】将文件夹中的word文档全部读出并转换为文本语料库。【参考代码】importospath='D:\\workstation\\构建语料库\\txt文件\\'#.txt文件所在文件夹path1='D:\\workstation\\构建语料库\\txt文件\\jiaotongzhaoshi.txt'#汇总的txt文件存放位置forfileinos.listdir(path):iffile[-3:]=='txt':filepath=path+'/'+filef=open(path1,mode='a')text=open(filepath,'r').read()f.write(text)f.close()语料库的创建从pdf文件创建语料库文本【例8-9】在下载的很多资料中,除了word文档,更多的还有pdf文档,pdf文档中的文本无法直接处理,需要将其转换为txt文档。【参考代码】importosfrompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreter#一个第三方库pdfminer,安装命令"pipinstallpdfminer"frompdfminer.pdfpageimportPDFPagefrompdfminer.converterimportTextConverterfrompdfminer.layoutimportLAParams#将一个pdf转换成txtdefpdftotxt(filepath,outpath):globaloutfpfp=open(filepath,'rb')#以二进制格式打开一个文件用于只读outfp=open(outpath,'w')#打开一个文件只用于写入rsrcmgr=PDFResourceManager(caching=False)#创建一个PDF资源管理器对象来存储共享资源,caching=False不缓存#创建一个PDF设备对象laparams=LAParams()device=TextConverter(rsrcmgr,outfp,laparams=laparams,imagewriter=None)#创建一个PDF解析器对象interpreter=PDFPageInterpreter(rsrcmgr,device)forpageinPDFPage.get_pages(fp,pagenos=set(),maxpages=0,caching=False,check_extractable=True):page.rotate=page.rotate%360cess_page(page)#关闭输入流fp.close()#关闭输出流device.close()outfp.flush()outfp.close()path='D:\\workstation\\构建语料库\\pdf文件\\'#原pdf文件所在文件夹,末尾要加分隔符path1='D:\\workstation\\构建语料库\\pdf文件\\

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论