內(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)
#方法讀取打開文件的一行铅祸。然后整行坑质,包括行結(jié)束符符,作為字符串返回临梗。如果設置了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表示文件末尾
關(guān)閉文件:
file_object.close
#關(guān)閉文件
文件內(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)被關(guān)閉什猖,否則為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)相關(guān)的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可選不狮,文件權(quán)限描述符降铸,默認0777 |
rmdir(path) | 刪除目錄 |