您的位置:首页 > 编程语言 > Python开发

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 网易 文件读写