Python中文件的操作
阿新 • • 發佈:2017-09-08
取模 buffer 終端設備 整型 大小 字節數 返回值 readline pan
文件的操作介紹
文件打開的方法
主要有兩種:
-
no with
格式:open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 常用:variable = open(‘路徑\文件‘,mode,encoding=None) variable.close() #不使用with方法時,在文件操作結束時要關閉文件
-
with
格式:with open(‘路徑\文件‘,mode,encoding=None) as variable: #該方法比較常用,在文件操作結束時不需要手動關閉文件,該方法默認自動關閉文件。
文件的打開模式
-
r
只讀模式(默認),如果文件不存在將報錯。
-
w
只寫模式:可寫,不可讀,如果文件不存在,將創建,存在將進行覆蓋。
-
a
追加模式:可寫,不可讀,文件不存在就創建,文件存在就在文件末尾追加。
-
+
表示同時讀寫操作:r+/w+/a+
r+:可讀可寫,文件不存在將報錯。 w+:可讀可寫,文件不存在將創建,存在將覆蓋。 a+:可讀可寫,文件不存在將創建,存在將在文件末尾追加。
-
U
將 \r \n \r\n自動轉換為 \n(在讀取模式使用:rU/r+U)
-
b
二進制格式存儲文件內容:rb/wb/ab/r+b/w+b/a+b
rb:二進制格式讀文件,可讀,不可寫,文件不存在將報錯。 wb:二進制格式寫文件,不可讀,可寫,文件不存在,將創建,文件存在將覆蓋。 ab:二進制格式追加文件內容,不可讀,可寫,文件存在直接追加,不存在將創建。 r+b:二進制格式讀寫文件,可讀,不可寫,文件不存在將報錯。 w+b:二進制格式寫讀文件,可讀,可寫,文件不存在,將創建,文件存將覆蓋。 a+b:二進制格式追加文件內容,可讀,可寫,文件不存在將創建,文件存在將追加在末尾。
註:讀寫內容時需要使用字符串的編碼和解碼操作str.encode(‘utf-8‘)和str.decode(‘utf-8‘),默認格式也是utf-8,因此括號內的編碼格式可以忽略不寫。
文件的常用操作
-
close(關閉文件)
格式:file.close() #該方法主要用於no with的打開文件情況下。
-
detach(分離)
格式:file.detach() #該方法主要用於返回緩存區打開文件的路徑和模式,日常很少使用。
-
fileno(文件描述符) 格式:file.fileno() #返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。
-
flush(刷新)
格式:file.flush() #刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。
-
isatty(終端)
格式:file.isatty() #如果文件連接到一個終端設備返回 True,否則返回 False。
-
read(按字節讀取文件)
格式:file.read(size=-1) #文件讀取指定的字節數,如果未給定或為負則讀取所有。
-
readable(是否可讀)
格式:file.readable() #判斷文件是否可讀,可讀則返回True,否則返回False。
- readline(按行讀文件) 格式:file.readline(size=-1) #讀取整行,包括 "\n" 字符,如果未給定或為負則讀取一行。如果指定字節大小小於該行長度時,則只讀取到第一行第N個字節。如果大於該行長度,則繼續讀下一行。
-
seek(指定指針位置)
格式:file.seek(whence=0) #指定指針位置,文件的開始指針位置為0。
-
seekable(指針是否可變)
格式:file.seekable() #判斷指針是否可改變,如果可以改變則返回Ture,否則返回False。
-
tell(顯示指針位置)
格式:file.tell() #返回當前指針位置。
-
truncate(截取文件)
格式:file.truncate(pos=None) #指定截取N個字節,從0開始,0-N保留,N之後的全部刪除,該方法只能用於可寫模式。
-
write(寫入)
格式:file.write(text) #把內容填寫到文件中。
-
writable(是否可寫)
格式:file.writabel() #判斷文件是否可寫,如果可寫,則返回True,否則返回值False。
-
readlines(讀每行)
格式:file.readlines(hint=-1) #一行一行讀取文件內容,並把讀取到的數據以列表的形式返回,默認讀全部文件,指定字節時,如果指定的長度小於該行長度,則只讀取該行內容,如果指定長度大於該行長度,則繼續讀下一行。
-
writelines(序列寫入)
格式:file.writelines(lines) #把序列寫入到文件中,接收參數可以是一個序列,也可以是一個字符串,write只能接收字符串。
常用的文件屬性
- buffer
-
closed(是否關閉)
格式:file.closed #判斷文件是否已經關閉,如果已經關閉,則返回True,否則返回False。
- encoding
- errors
- line_buffering
-
name
格式:file.name #返回文件的名字
- newlines
Python中文件的操作