內(nèi)建函數(shù)open成功打開文件后會返回一個文件對象,否則會引發(fā)一個異常IOError:
file_object = open(file_name , access_mode = 'r' , buffering = -1),其中參數(shù)file_name是包含要打開的文件名字的字符串,它可以是相對路徑或者絕對路徑。參數(shù)access_mode的介紹如下:
| access_mode | content |
|---|---|
| r | 以讀的模式打開(文件必須以存在) |
| rU或Ua | 以讀模式打開(提供通用換行符支持) |
| w | 以寫的模式打開(若文件存在清空原文件) |
| a | 以追加模式打開(從EOF開始,必要創(chuàng)建新文件) |
| r+ | 以讀寫模式打開(文件必須存在) |
| w+ | 以讀寫模式打開(若文件存在,則清空原文件) |
| a+ | 以讀寫追加模式打開(若文件不存在創(chuàng)建該文件,文件存在則寫入數(shù)據(jù)會被追加到文件尾) |
| rb | 以二進制讀模式打開 |
| wb | 以二進制寫模式打開 |
| ab | 以二進制追加模式打開 |
| rb+ | 以二進制讀寫模式打開 |
| wb+ | 以二進制讀寫模式打開 |
| ab+ | 以二進制讀寫模式打開 |
在open()成功返回文件對象之后返回一個文件對象,所有對該文件的后續(xù)操作都通過這個文件句柄:
輸入:
file_object.read(size)
#方法直接讀取字節(jié)到字符串中,最多讀取指定數(shù)目個字節(jié),如果沒有指定size或者指定值為負,文件將被讀至末尾
readline(size)
#方法讀取打開文件的一行。然后整行,包括行結束符符,作為字符串返回。如果設置了size參數(shù),如果在超過了size個字節(jié)后會返回不完整的行。
輸出:
file_object.write(string)
#方法將含有文本數(shù)據(jù)或二進制數(shù)據(jù)塊的字符串寫入到文件中。
移動:
file_object.seek(offset , from_what)
#可以在文件中移動文件指針到不同位置。offset字節(jié)代表相對于某個位置的偏移量,from_what的可選值為0,1,2
#0表示文件頭
#1表示當前位置
#2表示文件末尾
關閉文件:
file_object.close
#關閉文件
文件內(nèi)建方法
file_object.fileno() 返回文件的描述符
file_object.flush() 刷新文件的內(nèi)部緩沖區(qū)
file_object.isatty() 判斷file_object是否是一個類tty設備
file_object.tell() 返回當前在文件中的位置
文件內(nèi)建屬性
file_object.closed 表示文件已經(jīng)被關閉,否則為False
file_object.encoding 文件所使用的編碼------- 當Unicode字符串被寫入數(shù)據(jù)時,他們將自動使用 file.encoding 轉(zhuǎn)換為字節(jié)字符串,若file_object.encoding 為 None時使用系統(tǒng)的默認編碼
file_object.mode Access文件打開使用的訪問模式
file_object.name 文件名
與文件系統(tǒng)相關的OS模塊方法
| method | description |
|---|---|
| remove(path)/unlink(path) | 刪除文件(如果路徑是目錄,raiseOSError) |
| rename(src,dst)/renames(old,new) | 重命名文件 |
| walk(top,topdown=True,onerror=None,followlinks=False) | 生成一個目錄樹下的所有文件 |
| chdir(path) | 改變當前工作目錄到path |
| listdir(path) | 列出指定目錄的文件 |
| getcwd() | 返回當前工作目錄 |
| mkdir(path[,mode]) | 創(chuàng)建目錄,mode可選,文件權限描述符,默認0777 |
| rmdir(path) | 刪除目錄 |