前言
前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛。在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Python对的文件IO操作并不是很复杂,相信你很快就能掌握它!
文件IO操作
对于一个文件的操作,无非不过创建、删除、读、写,创建和删除在OS模块里面已经说过,那只剩下读和写了,也就是IO(Input,Output)操作了。
接下来,将以徐志摩的《再别康桥》为例子,深入解读Python中文件IO操作
轻轻的我走了, 正如我轻轻的来; 我轻轻的招手, 作别西天的云彩。 ---- 那河畔的金柳, 是夕阳中的新娘; 波光里的艳影, 在我的心头荡漾。 ---- 软泥上的青荇, 油油的在水底招摇; 在康河的柔波里, 我甘心做一条水草! ---- 那榆荫下的一潭, 不是清泉,是天上虹; 揉碎在浮藻间, 沉淀着彩虹似的梦。 ---- 寻梦?撑一支长篙, 向青草更青处漫溯⑷; 满载一船星辉, 在星辉斑斓里放歌。 ---- 但我不能放歌, 悄悄是别离的笙箫; 夏虫也为我沉默, 沉默是今晚的康桥! ---- 悄悄的我走了, 正如我悄悄的来; 我挥一挥衣袖, 不带走一片云彩。
1. 打开文件
Python获得文件句柄的方式与c及其类似,使用内置函数open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 「file表示文件名、mode表示打开方式(默认为读)、buffering表示寄存区缓冲大小(负值为系统默认,0为没有寄存区缓存,1为文件会寄存行,大于1的整数为寄存区缓存大小)、encoding表示文件编码、newline表示换行符(默认为n)」
f = open('再别康桥.txt') # 以默认读的方式打开再别康桥,注意:文件路径(此时程序和再别康桥在同一路径) f = open('xxx.txt', 'w') # 以写的方式打开文件,注意:如果此文件不存在,则创建这个文件;如果存在,则删除原文件所有内容
对于不同的文件,有不同的处理方式,常用的mode参数如下:
模式 描述 r 读 w 写 r+ 读写 w+ 写读 a 追加 a+ 追加读 rb 二进制读 wb 二进制写 rb+ 二进制读写 wb+ 二进制写读 ab 二进制追加 ab+ 二进制追加读
这些模式看似复杂,其实内部规律很清晰,接下来将用文件的读和写来充分了解这些模式
2. 文件的读
read() 「读取文件指针之后的所有内容,并返回字符串」
这里提到了一个新概念:文件指针,想象一下,你在读书,你的手指头指着你正在读的地方,你没读一个字,你的手指头就跟着向后动一下,你的手指头就是文件指针,以上模式中,除了a、a+、ab+文件指针在文件末尾之外,其他的都是在文件开头
In [2]: f = open('再别康桥.txt') # 默认读的方式打开文件 In [3]: f.read() # 读取文件指针之后的所有内容 Out[3]: '轻轻的我走了,n正如我轻轻的来;n我轻轻的招手,n作别西天的云彩。n----n那河畔的金柳,n是夕阳中的新娘;n波光里的艳影,n在我的心头荡漾。n----n软泥上的青荇,n油油的在水底招摇;n在康河的柔波里,n我甘心做一条水草!n----n那榆荫下的一潭,n不是清泉,是天上虹;n揉碎在浮藻间,n沉淀着彩虹似的梦。n----n寻梦?撑一支长篙,n向青草更青处漫溯;n满载一船星辉,n在星辉斑斓里放歌。n----n但我不能放歌,n悄悄是别离的笙箫;n夏虫也为我沉默,n沉默是今晚的康桥!n----n悄悄的我走了,n正如我悄悄的来;n我挥一挥衣袖,n不带走一片云彩。n'
In [9]: f = open('再别康桥.txt', 'w') # 以写的模式打开文件,此时这个文件的内容已经被删除了内容来源于网络如有侵权请私信删除
- 还没有人评论,欢迎说说您的想法!