Python中文件的open,close,read,write等操作

Python既然作爲開發語言,肯定不可避免要操作外部文件,比如讀取外部文件然後進行計算,比如將運算的結果存儲到本地文件。下面演示python常用的操作文件的方法。

1.新建(打開)文件和關閉文件

1.1在python,使用open函數,可以打開一個已經存在的文件,或者如果該文件不存在,則會創建一個新文件。

格式如下:open("文件名",訪問模式) ,默認的創建的目錄在當前程序所在的目錄

fo=open("myfile.doc",'w') #該文件不存在,則在當前目錄創建該文件,如下圖:

 

常用的訪問模式用法:

1.2因爲文件的讀取是流式的,像一個水管的閥門一樣。每次讀取操作的文件的時候,要先打開閥門open(),所以用完也要關閉。直接fo.close()即可。

# 新建一個文件,文件名爲:test.txt
f = open('test.txt', 'w')
# 關閉這個文件,文件操作完畢要將流給關閉
f.close()

2.文件的讀寫操作read/write

1.寫數據:使用write(“content”),可以完成向文件寫入數據,注意:如果文件不存在那麼創建,如果存在那麼就先清空文件(覆蓋),然後寫入數據到文件裏.

f = open('write_demo.txt', 'w') #打開文件,往哪個文件裏寫入數據。如無,創建。
print ("文件名爲: ", f.name)  #f.name打印文件的名稱,帶拓展名
f.write('hello ,I am writing ') #注意write寫入是先將文件內容清空,然後再寫入。
f.close() #關閉文件

2.讀數據:使用read(num)可以從文件中讀取數據,num表示要從文件中讀取的數據的長度(字符個數),如果沒有傳入num或者爲負,那麼就表示讀取文件中所有的數據,read()將讀取的數據以字符串的形式返回。注意:

  • 如果open是打開一個文件,那麼可以不用寫打開的模式,即只寫 open('aaa.txt')
  • 如果使用read讀了多次,那麼後面繼續使用read讀取的數據是從上次讀完後的位置開始的
#1.準備文件
f = open('write_demo.txt', 'w+') #新建文件,w+表示用於讀寫
f.write('你好abc王曉明,hello ')  #寫入內容
f.close() #文件關閉

#1.讀取文件開始
f=open("write_demo.txt",'r')
content=f.read(3)  #3表示讀取3個字符,雖然說是byte。但是有中文時實際按字符返回的
print("讀取的內容:%s"%content)
content1=f.read(1)  #注意如果用read(),讀取全部,後面再加read(num),就沒有內容可讀了。返回空字符串
print("讀取文件的內容:%s"%content1)
content2=f.read(5)
print("讀取文件的內容:%s"%content2)
f.close()
'''
讀取的內容:你好a
讀取文件的內容:b
讀取文件的內容:c王曉明,
'''

3.讀數據:readlines()可以按照行的方式把整個文件中的內容進行一次性讀取,讀取所有行(直到結束符 EOF)並返回列表,並且返回的是一個列表,其中每一行(按着換行符進行判斷一行)的數據爲一個元素。

f = open('test.txt', 'r')
content = f.readlines() #讀取文件中的全部行,按行劃分存儲到列表中,類型字符串
print(type(content))  #打印讀取結果的值類型,用list列表存儲

i=1  #遍歷列表,將讀取的內容顯示出來,按照原來文件的行劃分。
for temp in content:
    print("%d:%s"%(i, temp))
    i+=1
f.close()
'''
<class 'list'>
1:hello,world,

2:this is a demo
'''

4.讀數據:readline(),對原文件的數據按行讀取,(行的劃分是\n).每次只讀取一行。如果有多次讀取的話,下面一次讀取的偏移量是上面讀取後的偏移量。

f = open('test.txt', 'r')
content = f.readline()
print("第一次讀取:%s"%content)

content = f.readline()
print("第二次讀取:%s"%content)

f.close()
'''
第一次讀取:hello,world,

第二次讀取:this is a demo
'''

 

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