Python中read,readline

在用python讀取文件的時經常用到三read、readline、readlines三種方法,它們功能實質區別如下:

read       讀取整個文件

readline    讀取下一行

readlines   讀取整個文件到一個迭代器以供我們遍歷(讀取到一個list中,以供使用,比較方便)

測試文件為test.txt內容為:

1 aaaaaaaaaaaaaaaaaaaaa  2 bbbbbbbbbbbbbbbbbbbbb  3 ccccccccccccccccccccc  4 dddddddddddddddddddddd
[root@node01 ~]# pwd  /root  [root@node01 ~]# ls -l test.txt  -rw-r--r-- 1 root root 97 Jan 20 10:59 test.txt  [root@node01 ~]# cat test.txt   1 aaaaaaaaaaaaaaaaaaaaa  2 bbbbbbbbbbbbbbbbbbbbb  3 ccccccccccccccccccccc  4 dddddddddddddddddddddd    read方法    [root@node01 ~]# python  Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)   [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2  Type "help", "copyright", "credits" or "license" for more information.  >>> obj=open('/root/test.txt','r+w')  >>> obj.read()  '1 aaaaaaaaaaaaaaaaaaaaan2 bbbbbbbbbbbbbbbbbbbbbn3 cccccccccccccccccccccn4 ddddddddddddddddddddddn'  >>> obj.read()  ''  >>> exit()    readline方法    [root@node01 ~]# python  Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)   [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2  Type "help", "copyright", "credits" or "license" for more information.  >>> obj=open('/root/test.txt','r+w')  >>> obj.readline()  '1 aaaaaaaaaaaaaaaaaaaaan'  >>> obj.readline()  '2 bbbbbbbbbbbbbbbbbbbbbn'  >>> obj.readline()  '3 cccccccccccccccccccccn'  >>> obj.readline()  '4 ddddddddddddddddddddddn'  >>> obj.readline()  ''  >>> exit()    readlines方法    [root@node01 ~]# python  Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)   [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2  Type "help", "copyright", "credits" or "license" for more information.  >>> obj=open('/root/test.txt','r+w')  >>> obj.readlines()  ['1 aaaaaaaaaaaaaaaaaaaaan', '2 bbbbbbbbbbbbbbbbbbbbbn', '3 cccccccccccccccccccccn', '4 ddddddddddddddddddddddn']  >>> obj.readlines()  []  >>> obj.readlines()  []  >>>

觸類旁通,還有write、writelines方法,用法與上述方法對應類似,只不過write寫入的對象時字符串(str),writelines寫入的是列表(list),即:

obj.write(str)

obj.writelines(sequence)