Python中檔案的讀取和寫入

2021-08-07 03:23:27 字數 2989 閱讀 5133

3.1415926535

8979323846

2643383279

with open('pi_digits.txt') as f: # 預設模式為『r』,唯讀模式

contents = f.read() # 讀取檔案全部內容

print contents # 輸出時在最後會多出一行(read()函式到達檔案末會返回乙個空字元,顯示出空字元就是乙個空行)

print

'------------'

print contents.rstrip() # rstrip()函式用於刪除字串末的空白

3.1415926535

8979323846

2643383279

------------

3.1415926535

8979323846

2643383279

可以通過迴圈來實現逐行讀取資料:

with open('pi_digits.txt') as f:

for line1 in f:

print line1 # 每行末尾會有乙個換行符

print

'------------'

for line2 in f:

print line2.rstrip() # 此時檔案已經讀完,line2指向文字末尾,因此不會有輸出

3.1415926535

8979323846

2643383279

------------

讀取檔案時相當於有乙個指標在記錄讀取的位置,資料讀到哪,這個指標就指到哪邊,繼續讀取資料時會從該位置繼續讀取,因此上面**中第二個迴圈中輸出為空。將上述**稍加修改如下:

with open('pi_digits.txt') as f:

for line1 in f:

print line1

print

'------------'

with open('pi_digits.txt') as f: # 需要重新開啟文字進行讀取

for line2 in f:

print line2.rstrip() # 刪除字串末尾的空白

3.1415926535

8979323846

2643383279

------------

3.1415926535

8979323846

2643383279

上述**相當於第一次讀取完後關閉該檔案又重新開啟進行讀取。逐行讀取資料也可以用readline()函式,如下:

with open('pi_digits.txt') as f: 

# readline()每一次讀取一行資料,並指向該行末尾

line1 = f.readline() # 讀取第一行資料(此時已經指向第一行末尾)

line2 = f.readline() # 從上一次讀取末尾開始讀取(第二行)

print line1.rstrip()

print line2.rstrip()

3.1415926535

8979323846

有時候我們想要一次性讀取全部資料並且按分開儲存以便於後續的操作,當然用上面的迴圈可以實現,但python提供了更簡單的方法readlines():

with open('pi_digits.txt') as f: 

lines = f.readlines() # 讀取文字中所有內容,並儲存在乙個列表中,列表中每乙個元素對應一行資料

print lines # 每一行資料都包含了換行符

print

'------------'

for line in lines:

print line.rstrip()

print

'------------'

pi_str = ''

# 初始化為空字元

for line in lines:

pi_str += line.rstrip() #字串連線

print pi_str

['3.1415926535\n', '8979323846\n', '2643383279\n']

------------

3.1415926535

8979323846

2643383279

------------

3.141592653589793238462643383279

寫資料有幾種不同的模式,最常用的是w』, 『a』, 分別表示擦除原有資料再寫入和將資料寫到原資料之後:

filename = 'write_data.txt'

with open(filename,'w') as f: # 如果filename不存在會自動建立, 'w'表示寫資料,寫之前會清空檔案中的原有資料!

f.write("i am meringue.\n")

f.write("i am now studying in njtech.\n")

i am meringue.

i am now studying in njtech.

下面繼續在該檔案中加入新資料:

f.write("i major in machine learning and computer vision.\n")

此時的檔案內容為:

i am meringue.

i am now studying in njtech.

i major in machine learning and computer vision.

C C 中檔案的讀取和寫入

注意 1 由於c是緩衝寫 所以要在關閉或重新整理後才能看到檔案內容 2 電腦處理文字型和二進位制型的不同 因為電腦只認識二進位制格式 在c語言中寫檔案 獲取檔案指標 file pfile fopen 1.txt 開啟檔案的名稱 w 檔案開啟方式 如果原來有內容也會銷毀 向檔案寫資料 fwrite h...

python 檔案讀取和寫入

def upload file request try if request.method post data request.files data assert data,引數必傳 data num random.randint 0,100 file name os.path.join setti...

python 檔案的讀取和寫入

檔案讀取 with open 當前目錄檔名或指定目錄檔案 as file object contents file object.read 讀取檔案返回整個檔案 lines file object.readlines 讀取檔案返回檔案行列表 for line in lines print line....