龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > python编程 >

跟老齐学Python之不要红头文件(2)(2)

时间:2014-09-29 02:31来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: f = open("131.txt","r") f.readline() #每次返回一行,然后指针向下移动 'My name is qiwsir.\n' f.readline() #再读,再返回一行 'My website is qiwsir.githu

复制代码 代码如下:

>>> f = open("131.txt","r")
>>> f.readline()        #每次返回一行,然后指针向下移动
'My name is qiwsir.\n'
>>> f.readline()        #再读,再返回一行
'My website is qiwsir.github.io\n'
>>> f.readline()
'Aha,I like program\n'
>>> f.readline()        #已经到最后一行了,再读,不报错,返回空
''

这个方法,看官是不是觉得太慢了呢?有没有痛快点的呢?有,请挥刀自宫,不用自宫,也能用readlines。注意区别,这个是复数,言外之意就是多行啦。

复制代码 代码如下:

>>> f = open("131.txt","r")
>>> cont = f.readlines()
>>> cont
['My name is qiwsir.\n', 'My website is qiwsir.github.io\n', 'Aha,I like program\n']
>>> type(cont)
<type 'list'>
>>> for line in cont:
...     print line
...
My name is qiwsir.

My website is qiwsir.github.io

Aha,I like program

从实验中我们可以看到,readlines和read有一样之处,都是将文件内容一次性读出来,存放在内存,但是两者也有区别,read返回的是str类型,readlines返回的是list,而且一行一个元素,因此,就可以通过for逐行打印出来了。

在print line中,注意观察list里面的每个元素,最后都是一个\n结尾,所以打印的结果会有空行。其原因前面已经介绍过了,忘了的朋友请回滚到上一讲

不过,还是要提醒列位,太大的文件不用都读到内存中。对付大点的文件,还是推荐这么做:

复制代码 代码如下:

>>> f = open("131.txt","r")
>>> f
<open file '131.txt', mode 'r' at 0xb757c230>
>>> type(f)
<type 'file'>
>>> for line in f:
...     print line
...
My name is qiwsir.

My website is qiwsir.github.io

Aha,I like program

以上都是读文件的内置函数和方法。除了读,就是要写。所谓写,就是将内容存入到文件中。用到的内置函数是write。但是,要写入文件,还要注意打开文件的模式,可以是w,也可以是a,看具体情况而定。

复制代码 代码如下:

>>> f = open("131.txt","a")     #因为这个文件已经存在,我又不想清空,用追加的模式
>>> f.write("There is a baby.") #这句话应该放到文件最后
>>> f.close()                   #请看官注意,写了之后,一定要及时关闭文件。才能代表真正写入

看看写的效果:

复制代码 代码如下:

>>> f = open("131.txt","r")
>>> for line in f.readlines():
...     print line
...
My name is qiwsir.

My website is qiwsir.github.io

Aha,I like program

There is a baby.        #果然增加了这一行


以上是关于文件的基本操作。其实对文件远远不知这些,有兴趣的看官可以google一下pickle这个模块,是一个很好用的东西。

精彩图集

赞助商链接