本次的任务1关注Python的一些文件操作,以及最后的用Pyhton发送邮件,个人认为目前电子邮件的使用并不多,所以这部分内容仅作了解,我们重点关注Python的一些文件操作。
文件自动化操作
本次的文件操作学习分为前面的基础部分,以及后续的一些应用部分,通过文件操作的学习,我们基本能够完成文件的打开,写入,创建等一些简单的工作,使用程序的优点在于可以批量的处理重复的任务,基本操作就是利用OS库来完成一些简单的任务
基本操作
文件的两个关键属性:文件路径与文件名,我以我自己的文件为例:
文件名为:“task1_1_54.py”
后续的操作基本就是利用OS库以及File对象的办法,来完成任务,内容比较繁杂,受到群友的启示,我也利用思维导图(Xmind)的形式来展示学习成果。
这些内容我基本都自己用Python复现了一遍,基本熟悉了用法,有几个要注意的地方:
- 从window文件属性中复制的路径会隐性加上/u202,所以操作时最好还是采用手动输入的方法
- 如果在read函数之后再调用readline函数,readline将会返回一个空列表,具体的原因我不清楚,网上有猜想与指针有关的问题,这可能涉及到read内部的结构。解决方法是read之后close掉再调用readline。
进阶操作
受限于时间原因,本次我只学习了zipflip模块的一些知识,
zipflip模块
我们可以借助该模块来压缩文件,基本的流程如下:
- 以写模式创建一个压缩文件
zipfile.ZipFile(‘filename.zip’, ‘w’) :以写模式创建一个压缩文件。
ZipFile对象的write(‘filename’,‘compress_type=zipfile.ZIP_DEFLATED’)
如果向write() 方法中传入一个路径,Python 就会压缩该路径所指的文件, 将它加到 ZIP 文件中。 如果向write() 方法中传入一个字符串,代表要添加的文件名。后面的一个参数表示压缩的算法,可以不用更改的采用deflated的方法来压缩。 - zip文件读取
namelis() 方法,返回zip文件中包含所有文件和文件夹的字符串列表。
getinfo() 方法,返回一个关于特定文件的 ZipInfo 对象。
ZipInfo对象的两个属性: file_size 和 compress_size ,分别表示原来文件大小和压缩后文件大小 - zip文件解压
利用ZipFile 对象的 extractall() 方法,可以解压内部的所有文件
也可以用extract()的方法解压单个文件
这两种方法都默认解压到当前工作目录也可以指定一个文件夹,解压后的结果放去那里。