1. 程式人生 > 實用技巧 >python 檔案處理

python 檔案處理

一、讀操作

只讀模式'r'
f = open('a.txt', 'r', encoding='utf-8')
'''
'a.txt'表示檔案路徑,‘r’表示讀模式,不寫預設為rt模式‘rtext’,
f為變數,open('a.txt', 'r')表示在作業系統上開啟的檔案,python直譯器的回收功能會回收f,
但不能回收作業系統的檔案,f.close()像作業系統傳送關閉檔案的指令,
windows預設用gbk的格式開啟檔案,encoding='utf-8'告訴作業系統用utf-8的格式開啟檔案。
'''

data = f.read()
print(data)
f.close() # 檔案關閉,回收作業系統資源
print(f)
# 因為此時程式還沒有執行結束,所以還可以輸出結果,輸出結果:<_io.TextIOWrapper name='a.txt' mode='r' encoding='utf-8'>
# data1 = f.read() 此時作業系統已關閉該檔案
# print(data1)
'''
data1 = f.read() 輸出結果:
Traceback (most recent call last):
File "C:/Users/admin/PycharmProjects/pythonss/Day10/檔案處理.py", line 8, in <module>
data1 = f.read()
ValueError: I/O operation on closed file.
'''

with open('a.txt', 'r', encoding='utf-8') as f1: # 開啟檔案,並將檔案的值賦值給f,最後會自動執行f.close()
data2 = f1.read()
print('data2:', data2)

f = open('a.txt', 'r', encoding='utf-8')
data3 = f.read()
print('=====3=====', data3)
'''
輸出結果:
=====3===== aaa
bbb
hahah
哈哈哈
娃娃啊
'''
data4 = f.read()
print('=====4=====', data4)
'''
輸出結果:=====4===== 因為第一次讀檔案時,游標已經從檔案的開頭移動到檔案的結尾,所以在此讀檔案時,讀取結果為空
'''

f2 = open('a.txt', 'r', encoding='utf-8')
print(f2.readline()) # 輸出結果:aaa
print(f2.readline(), end='') # 取消換行符
print(f2.readlines())
# 輸出結果:['hahah\n', '哈哈哈\n', '娃娃啊'], read和readlinse一次性將檔案讀取到記憶體,所以僅限於檔案很小的情況下使用。

二、寫操作

只寫模式‘w’,預設是wt文字寫,寫入的內容只能為字串格式
f2 = open('b.txt', 'w', encoding='utf-8')
'''
檔案沒有時,w格式會新建一個檔案;
檔案存在時,w格式會重寫已有的檔案,將已有檔案覆蓋
'''
f2.write('1111\n') # 一行一行的編寫檔案
f2.write('2222\n')
f2.write('3333\n')
f2.writelines(['aaa\n', 'bbb\n', 'ccc\n']) # 直接編寫整個檔案
f.close()