溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中file對象的常用方法有哪些

發(fā)布時間:2021-11-20 16:15:46 來源:億速云 閱讀:233 作者:iii 欄目:編程語言

這篇文章主要講解了“python中file對象的常用方法有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python中file對象的常用方法有哪些”吧!

open() 方法

Python open() 方法用于打開一個文件,并返回文件對象,在對文件進行處理過程都需要使用到這個函數(shù),如果該文件無法被打開,會拋出 OSError。(使用 open() 方法一定要保證關(guān)閉文件對象,即調(diào)用 close() 方法)

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, 
closefd=True, opener=None)
  • file:必需,文件路徑(相對或者絕對路徑)。

  • mode: 可選,文件打開模式

  • buffering: 設(shè)置緩沖

  • encoding: 一般使用utf8

  • errors:報錯級別

  • newline: 區(qū)分換行符

  • closefd:傳入的file參數(shù)類型

file對象的常用函數(shù)

close()方法

close()方法用于關(guān)閉一個已打開的文件,關(guān)閉后的文件不能再進行讀寫操作, 否則會觸發(fā) ValueError 錯誤。close() 方法允許調(diào)用多次。

語法:fileObject.close();
file = open("hello.txt","wb")
print(file.name)
file.close()
# 輸出:hello.txt
read() 方法

read() 方法用于從文件讀取指定的字節(jié)數(shù),如果未給定或為負則讀取所有。

首先自己創(chuàng)建一個hello.txt文檔(自定義),文檔中的內(nèi)容是hello world。

file = open("hello.txt", "r")
read1 = file.read()
print(read1)
file.close()
# 輸出:hello world
write()方法

write()方法用于向文件中寫入指定字符串。

向一個空的hello.txt文檔中寫入hello world。

file = open("hello.txt", "w")
file.write("hello world")
file.close()
writelines() 方法

writelines() 方法用于向文件中寫入一序列的字符串。這一序列字符串可以是由迭代對象產(chǎn)生的,如一個字符串列表。換行需要制定換行符 \n。

file = open("hello.txt", "w")
con = ["a \n", "b\n", "c\n"]
file.writelines(con)
file.close()
# hello.txt文件中寫入
a
b
c
flush() 方法

flush() 方法是用來刷新緩沖區(qū)的,即將緩沖區(qū)中的數(shù)據(jù)立刻寫入文件,同時清空緩沖區(qū),不需要是被動的等待輸出緩沖區(qū)寫入。
一般情況下,文件關(guān)閉后會自動刷新緩沖區(qū),但如果你需要在關(guān)閉前刷新它,就可以使用 flush() 方法。

file = open("hello.txt", "wb")
print("文件名:", file.name)
file.flush()
file.close()
# 文件名: hello.txt
readline() 方法

readline() 方法用于從文件讀取整行,包括 “\n” 字符。如果指定了一個非負數(shù)的參數(shù),則返回指定大小的字節(jié)數(shù),包括 “\n” 字符。

# hello.txt的內(nèi)容
123
456
789
file = open("hello.txt", "r")
content = file.readline()
print(content)
file.close()
# 輸出hello.txt文件的第一行:123
readlines() 方法

readlines() 方法用于讀取所有行(直到結(jié)束符 EOF)并返回列表,該列表可以由 Python 的 for… in … 結(jié)構(gòu)進行處理。如果碰到結(jié)束符 EOF 則返回空字符串。

file = open("hello.txt", "r")
content = file.readlines()
print(content)
file.close()
# 輸出:['123\n', '456\n', '789']
seek() 方法

seek() 方法用于移動文件讀取指針到指定位置。

fileObject.seek(offset[, whence])
  • offset表示開始的偏移量,也就是代表需要移動偏移的字節(jié)數(shù)。

  • whence:可選,默認值為 0。給offset參數(shù)一個定義,表示要從哪個位置開始偏移;0代表從文件開頭開始算起,1代表從當前位置開始算起,2代表從文件末尾算起。

假設(shè)hello.txt文件中的內(nèi)容是abcdefghijk,那么我們使用 seek() 方法來移動文件指針試試:

file = open("hello.txt", "r")
file.seek(3) #文件指針移動到第三位,從第四位開始讀
print(file.read())  # 輸出:defghijk
file.seek(5)
print(file.read())  # 輸出:fghijk
file.close()
tell() 方法

tell() 方法返回文件的當前位置,即文件指針當前位置。

file = open("hello.txt", "r")
file.seek(4) #文件指針移動到第三位,從第四位開始讀
print(file.tell())  # 4
file.close()
fileno()方法

fileno() 方法返回一個整型的文件描述符(file descriptor FD 整型),可用于底層操作系統(tǒng)的 I/O 操作。

file = open("hello.txt", "w")
con = file.fileno()
print(con)
file.close()
# 輸出:3
isatty()方法

如果文件連接到一個終端設(shè)備返回 True,否則返回 False。

file = open("hello.txt", "w")
con = file.isatty()
print(con)
file.close()
# 輸出:False
truncate() 方法

truncate() 方法用于截斷文件,如果指定了可選參數(shù) size,則表示截斷文件為 size 個字符。 如果沒有指定 size,則從當前位置起截斷;截斷之后 size 后面的所有字符被刪除。

# hello.txt文本
a
b
c
d
e
file = open("hello.txt", "r")
con = file.readline()
print(con)     # 輸出:a
file.truncate()  # 截斷剩下的字符串
con = file.readline()
print(con)  
file.close()

感謝各位的閱讀,以上就是“python中file對象的常用方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對python中file對象的常用方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI