Python进阶【第七篇】文件处理
生活随笔
收集整理的這篇文章主要介紹了
Python进阶【第七篇】文件处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、文件操作
在Python中,文件讀寫是最常見的操作。對文件的操作為:
#1. 打開文件,得到文件句柄并賦值給一個變量 f=open('a.txt','r',encoding='utf-8') #默認打開模式就為r#2. 通過句柄對文件進行操作,f就是文件的句柄 data=f.read()#3. 關閉文件 f.close()操作系統打開該文件,并返回一個文件句柄給應用程序
應用程序將文件句柄賦值給變量f
二、文件的讀寫模式
文件的一般打開模式:
文件句柄 = open('文件路徑', '模式')?需要注意的是,文件路徑處應該填文件的相對路徑,當程序所操作的文件對象與該程序在同一目錄文件下時,可以直接用文件名。
要寫入特定編碼的文本文件,請給open()函數傳入encoding參數,將字符串自動轉換成指定編碼。
文件的處理模式可以是以下方式以及他們之間的組合:
| Character | Meaning |
| ‘r' | open for reading (default) |
| ‘w' | open for writing, truncating the file first |
| ‘a' | open for writing, appending to the end of the file if it exists |
| ‘b' | binary mode |
| ‘t' | text mode (default) |
| ‘+' | open a disk file for updating (reading and writing) |
| ‘U' | universal newline mode (for backwards compatibility; should not be used in new code) |
?
?
?
?
?
?
?
?
?
#1. 打開文件的模式有(默認為文本模式): r ,只讀模式【默認模式,文件必須存在,不存在則拋出異常】 w,只寫模式【不可讀;不存在則創建;存在則清空內容】 a, 之追加寫模式【不可讀;不存在則創建;存在則只追加內容】#2. 對于非文本文件,我們只能使用b模式,"b"表示以字節的方式操作(而所有文件也都是以字節的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式) rb wb ab 注:以b方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼#3. 了解部分 "+" 表示可以同時讀寫某個文件 r+, 讀寫【可讀,可寫】 w+,寫讀【可讀,可寫】 a+, 寫讀【可讀,可寫】x, 只寫模式【不可讀;不存在則創建,存在則報錯】 x+ ,寫讀【可讀,可寫】 xb?三、文件的操作方法
#掌握 f.read() #讀取所有內容,光標移動到文件末尾 f.readline() #讀取一行內容,光標移動到第二行首部 f.readlines() #讀取每一行內容,存放于列表中f.write('1111\n222\n') #針對文本模式的寫,需要自己寫換行符 f.write('1111\n222\n'.encode('utf-8')) #針對b模式的寫,需要自己寫換行符 f.writelines(['333\n','444\n']) #文件模式 f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式#了解 f.readable() #文件是否可讀 f.writable() #文件是否可讀 f.closed #文件是否關閉 f.encoding #如果文件打開模式為b,則沒有該屬性 f.flush() #立刻將文件內容從內存刷到硬盤 f.name?注意:文件沒有修改這一說,只能是新數據覆蓋原數據
四、文件中的光標移動
1.read(3):
1. 文件打開方式為文本模式時,代表讀取3個字符
2. 文件打開方式為b模式時,代表讀取3個字節
2.?除read()以外,其余的文件內光標移動都是以字節為單位如seek,tell,truncate
注意:
1. seek有三種移動方式0,1,2,其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的
2. truncate是截斷文件,所以文件的打開方式必須可寫,但是不能用w或w+等方式打開,因為那樣直接清空文件了,所以truncate要在r+或a或a+等模式下測試效果
?
轉載于:https://www.cnblogs.com/bep-feijin/p/8713437.html
總結
以上是生活随笔為你收集整理的Python进阶【第七篇】文件处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python子进程模块subproces
- 下一篇: The Hystrix timeout