6.1文件對象
所有Python對文件的操作都是基于對文件對象的操作。那么就從文件對象的創建說起。open()[file()]提供初始化輸入輸出的接口。open()成功打開文件時會返回一個文件對象。
open()方法的語法:
file_object=open(filename,access_mode,buffering)
filename,表示要打開的文件名的字符串,可以是相對路徑也可以是絕對路徑。
access_mode,表示打開方式。常見有'r'、'w'、'a',分別表示讀模式,寫模式,追加模式。帶+表示可讀可寫,帶b表示以二進制方式操作。
buffering表示緩沖方式,0表示不緩沖,1表示緩沖1行,大于1的值作為緩沖區的大小。
6.2文件內建方法
6.2.1輸入
read()方法用來讀取字節到字符串中。最多讀取給定個字節,默認情況沒有size參數,文件將讀取到文件末尾。
readline()方法讀取打開文件的一行。然后整行包括行結束符,作為字符串返回。
readlines()方法讀取所有的行,然后作為字符串列表返回。
6.2.2輸出
write(),與read(),readline()相反它將文本數據或二進制數據塊寫入文件。
writelines(),接受一個字符串列表作為參數,將他們寫入文件。
6.2.3文件內移動
seek()方法,可以在文件內移動文件指針到不同位置,默認值0表示文件起始,1表示從當前位置算起,2表示文件末尾算起。
text(),他可以告訴你當前文件指針在文件的位置,從文件頭算起以字節為單位。
6.3文件迭代
如果想迭代文件我們首先想到的是將文件讀取到列表或者其他序列中再進行迭代。
f=open('demo.txt','r')
stringList=f.readlines()
for eachstring in stringList:
...
但事實上文件對象也是可迭代的,于是就有了:
f=open('demo.txt','r')
for eachline in f:
...
6.4
close()通過關閉文件結束對它的訪問。 編程中不在引用某文件時需要關閉,別問為什么。
fileno()方法返回打開的文件描述符。常用于底層操作。
6.5文件系統
對文件的訪問大多通過OS模塊實現。經常用到的對文件的操作有刪除/重命名文件,遍歷目錄樹,管理文件訪問權限。另一個模塊os.path模塊可以完成一些針對目錄名的操作。下面是一些常用的函數。
6.5.1 文件操作類
mkfifo(),創建命名管道。
remove(),刪除文件。
rename(),重命名文件。
utime(),更新時間戳。
walk(),生成一個目錄樹下所有的文件名。
2、目錄/文件夾
chdir(),改變當前工作目錄。
chroot(),改變的當前進程的目錄。
listdir(),列出制定目錄的文件。
mkdir()/makedirs(),創建目錄/創建多層目錄。
rmdir()/removedirs(),刪除目錄/刪除多層目錄。
3、訪問/權限
access(),檢驗權限模式。
chmod(),改變權限模式。
umask(),設置默認權限模式。
6.5.2 os.path中的路徑操作函數
1、分隔
basename(),去掉路徑名返回文件名。
dirname(),去掉文件名返回路徑名。
split(),返回(dirname(),basename())元組。
2、信息
getatime(),返回最近訪問時間。
getctime(),返回文件創建時間。
getmtime(),返回文件修改時間。
getsize(),返回文件大小。
3、查詢
exists(),指定路徑是否存在。
6.6相關模塊
base64,提供二進制字符串和文本字符串的編碼解碼操作。
bianascii,提供二進制和ASCII字符串的編碼解碼操作。
bz2,訪問bz2格式的壓縮文件。
fileinput,提供多個文本文件的行迭代器。
shutil,提供高級文件訪問功能。
tarfile,讀寫tar歸檔文件,支持壓縮文件。
zipfile,讀寫zip歸檔文件的工具。
新聞熱點
疑難解答