Python学习笔记——文件读写
2017-02-28 00:12
561 查看
参见网易云课堂“疯狂的Python”第32课时
用Python 来进行文件处理,有何意义?自然首先想到的是可以查找和更改文件的属性,分类和具体信息。比如说分析log日志,用正则查询log里所需要的内容。比如说写个简单的杀毒软件,或者做一个文件处理软件等。
所涉及的内容如下:
1.文件的打开和创建
打开需要用到file和open命令
比如说有一个文件夹位于根目录(/root)下(linux中查看当前目录用pwd命令),文件名为new.txt。
进入python交互模式,当需要打开new.txt这个文件时就需要用到以下命令:
f0=file(‘/root/new.txt’)
f0=open(‘/root/new.txt’)
这样操作后就可以对其进行更进一步处理,要注意打开后要及时关闭,否则可能后续的写入操作会将原文件内容完全删除,关闭命令模式为:
f0.close
进一步的读写处理:
‘r’——只读,用法为:
f0=open(‘/root/new.txt’,’r’)
这里文件为只读模式,要查看其内容输入以下命令:
f0.read()
‘r+’——读写,用法为:
f0=open(‘/root/new.txt’,’r+’)
这里文件可读可写,但有个问题
假设new.txt中内容为字符串’hello,world!’
进入python交互模式,第一种情况:
f0=open(‘/root/new.txt’,’r+’)
f0.read()
hello,world! #输出内容
f0.write(‘hello,everyone!’)
f0.close #关闭文件
f0=open(‘/root/new.txt’) #再次打开
f0.read()
hello,world!hello,everyone!#输出内容
第二种情况:
f0=open(‘/root/new.txt’,’r+’)
f0.write(‘happy’)
f0.close #关闭文件
f0=open(‘/root/new.txt’,’r’) #再次打开
f0.read()
happy,world!hello,everyone!#输出内容
对比可以看出,对于’r+’模式,先读后写与先写后读其输出内容是不一致的,前者作用在内容末尾,后者作用在内容开头,并替换掉开头的内容。二者的差别就在于指针上,前者先做读取操作时,完后指针已经指到内容末尾,于是写入操作从末尾开始。后者先做写入操作时,指针默认从文件初始内容处开始,并替换掉初始内容。
‘w’——写入,用法为:
f0=open(‘/root/new.txt’,’r+’)
f0.write(‘good’)
f0.close
f0=open(‘/root/new.txt’)
f0.read()
good #输出内容
原目录没有case.txt,这里新建了一个case.txt文件并写入里’good’字符串,但这里在写入不能立马读取,否则会报错,需要再打开一次才行。
‘w+’——可读可写模式,这之后可以导入read()指令而不会像’w’那样报错,只不过写入参数再read后返回值为空(未理解),但重新以’w+’模式打开后可以直接read到内容。
‘w’与’w+’共同点是会把原文件删除并写入新的内容(若write前先read则从文件末尾开始写)
‘a’与’a+’是’w’与’w+’的一个升级,二者自带指针,而且都指向文件末尾。
‘b’比较特殊,比如导入一个图片,就需要’b’模式,否则会出错。
‘U’支持所有换行符号,不同的操作系统的换行符是不一样的,该模式对这些系统的换行符号都可以支持。
用Python 来进行文件处理,有何意义?自然首先想到的是可以查找和更改文件的属性,分类和具体信息。比如说分析log日志,用正则查询log里所需要的内容。比如说写个简单的杀毒软件,或者做一个文件处理软件等。
所涉及的内容如下:
1.文件的打开和创建
打开需要用到file和open命令
比如说有一个文件夹位于根目录(/root)下(linux中查看当前目录用pwd命令),文件名为new.txt。
进入python交互模式,当需要打开new.txt这个文件时就需要用到以下命令:
f0=file(‘/root/new.txt’)
f0=open(‘/root/new.txt’)
这样操作后就可以对其进行更进一步处理,要注意打开后要及时关闭,否则可能后续的写入操作会将原文件内容完全删除,关闭命令模式为:
f0.close
进一步的读写处理:
‘r’——只读,用法为:
f0=open(‘/root/new.txt’,’r’)
这里文件为只读模式,要查看其内容输入以下命令:
f0.read()
‘r+’——读写,用法为:
f0=open(‘/root/new.txt’,’r+’)
这里文件可读可写,但有个问题
假设new.txt中内容为字符串’hello,world!’
进入python交互模式,第一种情况:
f0=open(‘/root/new.txt’,’r+’)
f0.read()
hello,world! #输出内容
f0.write(‘hello,everyone!’)
f0.close #关闭文件
f0=open(‘/root/new.txt’) #再次打开
f0.read()
hello,world!hello,everyone!#输出内容
第二种情况:
f0=open(‘/root/new.txt’,’r+’)
f0.write(‘happy’)
f0.close #关闭文件
f0=open(‘/root/new.txt’,’r’) #再次打开
f0.read()
happy,world!hello,everyone!#输出内容
对比可以看出,对于’r+’模式,先读后写与先写后读其输出内容是不一致的,前者作用在内容末尾,后者作用在内容开头,并替换掉开头的内容。二者的差别就在于指针上,前者先做读取操作时,完后指针已经指到内容末尾,于是写入操作从末尾开始。后者先做写入操作时,指针默认从文件初始内容处开始,并替换掉初始内容。
‘w’——写入,用法为:
f0=open(‘/root/new.txt’,’r+’)
f0.write(‘good’)
f0.close
f0=open(‘/root/new.txt’)
f0.read()
good #输出内容
原目录没有case.txt,这里新建了一个case.txt文件并写入里’good’字符串,但这里在写入不能立马读取,否则会报错,需要再打开一次才行。
‘w+’——可读可写模式,这之后可以导入read()指令而不会像’w’那样报错,只不过写入参数再read后返回值为空(未理解),但重新以’w+’模式打开后可以直接read到内容。
‘w’与’w+’共同点是会把原文件删除并写入新的内容(若write前先read则从文件末尾开始写)
‘a’与’a+’是’w’与’w+’的一个升级,二者自带指针,而且都指向文件末尾。
‘b’比较特殊,比如导入一个图片,就需要’b’模式,否则会出错。
‘U’支持所有换行符号,不同的操作系统的换行符是不一样的,该模式对这些系统的换行符号都可以支持。
相关文章推荐
- 【python学习笔记】22:numpy文件读写和一些常量
- Python3学习笔记7-文件的读写
- Python学习笔记(五)——读写文件
- python文件读写实例学习笔记
- python 学习笔记 错误调试 文件读写
- 【python学习笔记】pthon3.x中的文件读写操作
- Python学习笔记--文件读写
- Python学习笔记(3)--数据文件的读写
- 【Python学习笔记】IO编程:文件读写
- python基础教程学习笔记---(6)文件读写
- Python学习笔记(18)-目录操作与文件读写
- Python学习笔记(二十三)文件读写
- 初学Python的学习笔记12----单元测试、文档测试和文件读写
- 廖雪峰python学习笔记10&&11:容错处理与文件读写
- python学习笔记之编写readConfig读写配置文件
- Python 学习笔记 (6)—— 读写文件
- python学习笔记 IO 文件读写
- nginx 源码学习笔记(十三)——文件读写和配置文件读取
- [perl学习笔记]文件操作之文件的读写
- Java学习笔记之swing文件选取器 例子 (4种读写文件方式-和图片的读写方法)