file文件操作

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章