https://www.runoob.com/python3/python3-file-methods.html
file() 函數用于創建一個 file 對象,它有一個別名叫 open()
1. 文件打開
open() 函數
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 必需,文件路徑(相對或者絕對路徑)。寫入模式下,若文件不存在會自動創建
mode: 可選,文件打開模式
buffering: 設置緩沖
encoding: 一般使用utf8,一般需要限定
errors: 報錯級別
newline: 區分換行符
closefd: 傳入的file參數類型
參考:https://www.runoob.com/python3/python3-func-open.html
mode模式 | 描述 |
---|---|
t | 文本模式 (默認)。 |
x | 寫模式,新建一個文件,如果該文件已存在則會報錯。 |
b | 二進制模式。 |
+ | 打開一個文件進行更新(可讀可寫)。 |
U | 通用換行模式(不推薦)。 |
r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 |
rb | 以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。一般用于非文本文件如圖片等。 |
r+ | 打開一個文件用于讀寫。文件指針將會放在文件的開頭。 |
rb+ | 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。 |
w | 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。 |
wb | 以二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。 |
w+ | 打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。 |
wb+ | 以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。 |
a | 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
ab | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
a+ | 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。 |
ab+ | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。 |
2. 文件關閉
file.close() : 關閉文件,關閉后文件不能再進行讀寫操作。
使用完文件后,及時關閉,避免占用系統資源,同時防止文件損壞或丟失
3. 文件讀取
-
file.read([size]) : 從文件讀取指定的字節數,如果未給定或為負則讀取所有。
--未指定size時,當文件大小為當前機器內存兩倍時,就會產生問題
-
file.readline([size]) : 讀取整行,包括 “\n” 字符。不指定size時每次讀取一行。
可以循環遍歷文件對象來讀取文件中的每一行
fobj = open('sample.txt')
for x in fobj:
print(x, end = '')
fobj.close()
- file.readlines([sizeint]) : 讀取所有行并返回列表,若給定sizeint>0,返回總和大約為sizeint字節的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩沖區。
4. 文件寫入
file.write(str)
將字符串寫入文件,返回的是寫入的字符長度
fobj = open("ircnicks.txt", 'w') # 先使用寫入模式打開文件,ircnicks.txt若不存在,會自動創建
fobj.write('powerpork\n') # write()方法寫入數據,一行需要以\n結尾
fobj.write('indrag\n')
fobj.close()
copy file1 to file2
import sys
#參數驗證
if len(sys.argv) < 3:
print("Usage: python ",sys.argv[0]," file1 file2")
sys.exit(1) # 程序異常退出
f1 = open(sys.argv[1]) # 只讀模式打開file1
s = f1.read() # 讀取file1,將字節內容賦值給s
f1.close # 關閉file1
f2 = open(sys.argv[2],'w') # 寫入模式打開file2
#f2.write(s) # 將s中存儲的file1的內容 寫入f2
f2.close # 關閉 f2
5. 腳本
腳本樣例:
分析給定文本文件,返回其空格,制表符,行的相關信息: 提取碼 th6f
CopyFIle : 提取碼 z23s
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
