Python程序设计任务驱动式教程-7.1文件内容加密 文件操作三步走_第1页
Python程序设计任务驱动式教程-7.1文件内容加密 文件操作三步走_第2页
Python程序设计任务驱动式教程-7.1文件内容加密 文件操作三步走_第3页
Python程序设计任务驱动式教程-7.1文件内容加密 文件操作三步走_第4页
Python程序设计任务驱动式教程-7.1文件内容加密 文件操作三步走_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

文件内容加密——文件操作“三步走”批量修改文件的扩展名——目录操作带异常判断和处理的计算器——异常处理实例

将一批文件按后缀名分类存入不同文件夹内容提要采用加密算法对文本文件进行加密操作。【任务描述】对文本文件的加密,需要选择加密算法,这里采用RSA加密算法进行加密。【任务分析】首先在D盘下创建一个hello文件夹,在文件夹内部创建helloworld.txt文件,里面写入“helloworld”字符串。编写程序代码前,需要先安装RSA加密模块,打开cmd命令窗口,输入pipinstallrsa指令。【任务实施】代码实现:importosimportrsa"""使用RSA算法加密文件参数:file_path,需要加密的文件路径,无返回值"""defencrypt_file(file_path):#生成公钥、私钥(pubkey,privkey)=rsa.newkeys(512)print("pub:",pubkey)print("priv:",privkey)#读取文件内容withopen(file_path,"rb")asfile:file_content=file.read()#加密文件内容encrypted_content=rsa.encrypt(file_content,pubkey)#将加密后的内容写入文件withopen(file_path,"wb")asfile:file.write(encrypted_content)if_name_=="_main_":

encrypt_file("D:\hello\helloworld.txt")运行结果:D:\hello\helloworld.txt文本文件里的内容变成乱码。

文件内容不同,乱码也不同,比如像:D@v凶嚆_h谒齼乊鐖z圗z?.B堠O圿:T?蠨p;"彄晫錍紂?災乗梳?,?【任务相关知识链接】程序中使用的数据都是暂时的,当程序终止时,它们就会丢失。如果要把数据永久保存下来,就需要把数据存储到文件中去,在Python中,我们可以使用各种库和模块来操作不同类型的文件,如文本文件、二进制文件、CSV文件等

。对文件的访问是指对文件进行读/写操作。文件的打开文件的关闭读文件写文件文件定位读取文件的复制与重命名在Python中访问文件,必须首先使用内置方法open()打开文件,返回一个file对象,再利用该file对象执行读写操作。文件对象一旦被成功创建,该对象便会记住文件的当前位置,这个位置称为文件的指针,初始时,文件指针均指向文件的头部。open()函数用于创建或打开指定文件,该函数的常用语法格式如下:

file=open(filename[,mode[,buffering]])文件的打开此格式中,用[]括起来的部分为可选参数,即可以使用也可以省略。其中,各个参数所代表的含义如下:file:表示要创建的文件对象。filename:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。mode:用于指定文件的打开模式。默认以只读(r)模式打开文件。可选的打开模式如表7-1所示。文件的打开file=open(filename[,mode[,buffering]])表7-1open()函数中mode参数常用值值说明‘r’读模式,如果文件不存在,则发生异常FileNotFoundError。默认值‘w’写模式,如果文件不存在,则创建文件再打开;如果文件存在,则清空文件内容再打开‘a’追加模式,如果文件不存在,则创建文件再打开;如果文件存在,打开文件后将新内容追加至原内容之后‘rb’以二进制模式,采用只读模式打开文件,一般用于音频文件,图片文件‘wb’以二进制模式,采用只写模式打开文件,一般用于音频文件,图片文件文件的打开举例:open()函数的使用。在D盘下创建一个hello文本文件,在文件中输入“HelloWorld!”字符串。代码实现:

file=open(“d:\hello.txt”)

print(file)运行结果:输出文件对象时可以看到文件名、读/写模式和编码格式。cp936就是指Windows系统里第936号编码格式,即GB2312编码。然后,就可以调用file文件对象的方法读取文件中的内容。文件的打开文件打开并操作完成,应该关闭文件,以便释放所占用的内存空间,或被别的程序打开并使用。文件对象的close()方法用来刷新缓冲区里所有还没写入的信息,并关闭该文件,之后便不能再执行写入操作。当一个文件对象的引用被重新指定给另一个文件时,Python将关闭之前的文件,close()方法语法格式如下:

file.close()功能:关闭文件。如果在一个文件关闭后还对其进行操作,将产生ValueError。文件的关闭用户可以调用文件对象的多种方法读取文件内容。1.read()方法语法格式:file.read([count])参数说明:参数count是从已打开文件中读取的字节数。如果不设置参数,read方法读取文件中全部剩余的内容。读文件举例:调用read()方法读取hello.txt文件中的内容。代码实现:运行结果:file=open("d:\hello.txt")print(file)content=file.read()print(content)读文件2.readline()方法语法格式:

file.readline([count])功能:读取文件的下一行,包括行结束符。参数说明:count是一行中要读取的字节数,默认时,读1行。

读文件举例:调用readline()方法读取hello文件中的内容。在hello.txt文件中追加以下字符串:BeiJingShangHaiGuangZhouNanJing。代码实现:file=open("d:\hello.txt")content=""whileTrue:frag=file.readline()iffrag=="":#或者ifnotfragbreak

content+=fragfile.close()print(content)运行结果:读文件3.readlines()方法语法格式:file.readlines([count])参数说明:count参数是表示读取内容的总字节数,即只读文件的一部分。readlines()方法可以按照行的方式把整个文件中的内容进行一次性读取,并返回一个字符串列表,其中的每一项是文件中每一行的字符串。

读文件举例:读取D盘下hello.txt文件的内容。代码实现:file=open("d:\hello.txt")content=file.readlines()file.close()print(content)forlineincontent:#输出列表

print(line)运行结果:

读文件

写文件和读文件相似,都需要先创建文件对象链接。不同之处在于,打开文件时是以“写”模式或“添加”模式打开。如果文件不存在,则创建该文件。打开的文件可以一次性全部写入,也可以把列表中存储的内容写入文件。Python提供以下方法来对打开的文件执行写操作。1.write()方法语法格式:file.write(str)功能:把str写到文件中。write()并不会在str后加上一个换行符。参数说明:参数str是一个字符串,是要写入文件的内容。写文件举例:用write()方法写文件,在文件中写入西安。代码实现:file=open("d:\hello.txt","w")file.write("西安\n")file.closefile=open("d:\\hello.txt")content=file.read()print(content)运行结果:注意:调用write()方法会覆盖hello.txt里面原有数据内容,再重新写入,需要特别注意。如果要追加内容,只需要把mode参数”w”换成”a”即可。写文件西安2.writelines()方法语法格式:file.writelines(seq)功能:把seq(序列字符串列表)的内容全部写到文件中,并且不会在字符串的结尾添加换行符(‘\n’)。如果需要换行要自己加入每行的换行符。参数说明:seq是一个列表对象。写文件举例:用writelines()方法把11,22,33,44,55,写入文件中。代码实现:file=open("d:\hello.txt","w")list01=["11","22\n","33","44\n","55"]file.writelines(list01)file.close()file=open("d:\hello.txt")content=file.read()print(content)运行结果:写文件1.file.tell()功能:返回文件操作标记的当前位置,以文件的开始位置为原点。2.file.next()功能:返回下一行,并将文件操作标记位移到下一行。文件定位读取3.file.seek(offset[,whence])功能:将文件操作标记移到offset的位置。参数说明:offset一般是相对于文件的开始位置来计算的,通常为正数。如果提供了whence参数,按如下原则计算偏移量:whence为0,表示从头开始计算;whence为1,表示以当前位置为原点进行计算;whence为2,表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次写操作时,文件操作标记会自动返回到文件末尾。文件定位读取举例:文件定位方法与读取方法示例。代码实现:file=open("d:/hello.txt","r")#以读方式打开文件,文件路径之前的r表示不使用转义print(read()方法:)print(file.read())#读取整个文件print(readline()方法:)file.seek(0)print(file.readline())#返回文件头,读取1行print(readlines()方法:)file.seek(0)print(file.readlines())#返回文件头,返回所有行的列表print(逐行显示列表元素:)file.seek(0)textlist=file.readlines()

文件定位读取forlineintextlist:line=line.strip(\n)#去掉换行符

print(line)#移位到33个字符,从第33个字符开始,显示37个字符的内容print(seek(33)function)file.seek(33)print(tell()function,end=)print(file.tell())print(file.read(37))print(文件的当前读取位置,end=)print(file.tell())#显示当前位置file.close()#关闭文件对象文件定位读取read()方法:1122334455readline()方法;1122readlines()方法:[1122\n,3344\in,55]逐行显示列表元素:1122334455seek(33)functiontell()function33文件的当前读取位置33运行结果:

Python的os模块和shutil模块提供了执行文件处理操作的方法,比如复制,重命名和删除文件。要使用这个模块,需要先导入它,然后才可以调用相关的功能。1.文件的复制在shutil模块中提供了复制文件和文件夹的函数。shutil.copy(source,destination):复制文件。shutil.copytree(source,destination);复制整个文件夹,包括其中的文件及子文件夹。文件的复制与重命名举例:文件的复制,把d:/hello.txt中的内容复制到d:/dest_dir.txt

温馨提示

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

评论

0/150

提交评论