open()成功執行後返回一個文件對象,以後所有對該文件的操作都可以通過這個“句柄”來進行,現在主要討論下常用的輸入以及輸出操作。
輸出:
read()方法用於直接讀取字節到字符串中,可以接參數給定最多讀取的字節數,如果沒有給定,則文件讀取到末尾。
readline()方法讀取打開文件的一行(讀取下個行結束符之前的所有字節),然後整行,包括行結束符,作爲字符串返回。
readlines()方法讀取所有行然後把它們作爲一個字符串列表返回
eg:
文件/root/10.txt的內容如下,分別使用上面的三個方法來讀取,注意區別:
1.read():
>>>> cat /root/10.txt
I'll write this message for you
hehe,that's will be ok.
>>>> fobj = open('/root/10.txt') ##默認已只讀方式打開
>>>> a = fobj.read()
>>>> a
"I'll write this message for you\nhehe,that's will be ok.\n" ##直接讀取字節到字符串中,包括了換行符
>>>> print a
I'll write this message for you
hehe,that's will be ok.
>>>> fobj.close() ##關閉打開的文件
2.readline():
>>>> fobj = open('/root/10.txt')
>>>> b = fobj.readline()
>>>> b
"I'll write this message for you\n" ##整行,包括行結束符,作爲字符串返回
>>>> c = fobj.readline()
>>>> c
"hehe,that's will be ok.\n"
##整行,包括行結束符,作爲字符串返回
>>>> fobj.close()
3.readlines():
>>>> fobj = open('/root/10.txt')
>>>> d = fobj.readlines()
>>>> d
["I'll write this message for you\n", "hehe,that's will be ok.\n"] ##讀取所有行然後把它們作爲一個字符串列表返回
>>>> fobj.close()
4.xreadlines
xrange
Renames xrange() to range() and wraps existing range() calls with list.
xreadlines
Changes for x in file.xreadlines() to for x in file.
輸入:
write()方法和read()、readline()方法相反,將字符串寫入到文件中。
和readlines()方法一樣,writelines()方法是針對列表的操作。它接收一個字符串列表作爲參數,將他們寫入到文件中,換行符不會自動的加入,因此,需要顯式的加入換行符。
eg:
1.write():
>>>> fobj = open('/root/3.txt','w')
###確保/root/3.txt沒有存在,如果存在,則會首先清空,然後寫入。
>>>> msg = ['write date','to 3.txt','finish'] ###這裏沒有顯式的給出換行符
>>>> for m in msg:
... fobj.write(m)
...
>>>> fobj.close()
>>>> cat /root/3.txt
write dateto 3.txtfinish
>>>> fobj = open('/root/3.txt','w') ###覆蓋之前的數據
>>>> msg = ['write date\n','to 3.txt\n','finish\n'] ###顯式給出換行符
>>>> for m in msg:
... fobj.write(m)
...
>>>> fobj.close()
>>>> cat /root/3.txt
write date
to 3.txt
finish
2.writelines():
>>>>fobj = open('/root/3.txt','w')
>>>>msg = ['write date\n','to 3.txt\n','finish\n']
>>>>fobj.writelines(msg)
>>>>fobj.close()
cat /root/3.txt
write date
to 3.txt
finish