Python檔案操作方法大總結
檔案操作必不可少的是open函式:對檔案讀寫之前,需要先開啟檔案,獲取檔案控制程式碼
注意:open() file() 儘量使用open(),Python3以後不支援file()了
1、open方法原型解釋
1 |
open
(file_name[,access_mode][,buffering]) |
(1)引數說明
file_name:一個包含了你要訪問的檔案路徑及檔名稱的字串值。儘量使用絕對路徑
access_mode:開啟檔案的方式:這個引數是非強制的,預設檔案訪問模式為只讀(r)
r,只讀
w:寫之前會清空檔案的內容
a:追加的方式,在原本內容中繼續寫
buffering:先寫到快取中
如果buffering的值被設定為0,就不會有寄存;如果值為1,訪問檔案時會快取行;如果值位大於1的整數,表明了這就是寄存區的緩衝大小;如果取負值,寄存區的緩衝大小則為系統預設。該引數也是非強制性的。
(2)返回值
該語句表示返回的File_object是一個指向檔案的指標(一個檔案物件)檔案控制程式碼。當以只讀模式(r)開啟一個不存在的檔案時,就會報IOError異常(檔案不存在),但如果是以寫或追加模式(w/a/a+)開啟一個不存在的檔案時,預設會建立該檔案,但如果是所在路徑中有目錄不存在,也會報IOError異常
常用方法列表
操作 | 說明 |
---|---|
os.getcwd() | 得到當前工作目錄,即當前Python指令碼工作的目錄路徑 |
os.listdir() | 返回指定目錄下的所有檔案和目錄名 |
os.remove() | 函式用來刪除一個檔案 |
os.removedirs(r"c\python") | 刪除多個目錄 |
os.path.isfile() | 檢驗給出的路徑是否是一個檔案 |
os.path.isdir() | 檢驗給出的路徑是否是一個目錄 |
os.path.isabs() | 判斷是否是絕對路徑 |
os.path.exists() | 檢驗給出的路徑是否真地存 |
os.path.split() | 返回一個路徑的目錄名和檔名 |
os.path.splitext() | 分離副檔名 |
os.path.dirname() | 獲取路徑名 |
os.path.basename() | 獲取檔名 |
os.system() | 執行shell命令 |
os.getenv() 與os.putenv() | 讀取和設定環境變數 |
os.linesep | 給出當前平臺使用的行終止符,Windows使用'rn',Linux使用'n'而Mac使用'r' |
os.name | 指示你正在使用的平臺,對於Windows,它是'nt',而對於Linux/Unix使用者,它是'posix' |
os.rename(old, new) | 重新命名: |
os.makedirs(r"c:\python\test") | 建立多級目錄 |
os.mkdir("test") | 建立單個目錄 |
os.stat(file) | 獲取檔案屬性 |
os.chmod(file) | 修改檔案許可權與時間戳 |
os.exit() | 終止當前程式 |
os.path.getsize(filename) | 獲取檔案大小 |
os.mkdir("file") | 建立目錄 |
shutil.copyfile("oldfile","newfile") | 複製檔案, oldfile和newfile都只能是檔案 |
shutil.copy("oldfile","newfile") | oldfile只能是資料夾,newfile可以是檔案,也可以是目標目錄 |
shutil.copytree("olddir","newdir") | 複製資料夾, olddir和newdir都只能是目錄,且newdir必須不存在 |
os.rename("oldname","newname") | 重新命名檔案(目錄),檔案或目錄都是使用這條命令 |
shutil.move("oldpos","newpos") | 移動檔案(目錄) |
os.remove("file") | 刪除檔案 |
os.rmdir("dir") | 刪除目錄, 只能刪除空目錄 |
shutil.rmtree("dir") | 空目錄、有內容的目錄都可以刪 |
os.chdir("path") | 轉換目錄, 換路徑 |
os.mknod("test.txt") | 建立空檔案 |
2、mode檔案操作模式
r,w,a
r+可讀可寫
w+:開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
a+:開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
模式列表
操作 | 說明 |
---|---|
r | 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
w | 以寫方式開啟, |
a | 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案) |
r+ | 以讀寫模式開啟 |
w+ | 以讀寫模式開啟 (參見 w ) |
a+ | 以讀寫模式開啟 (參見 a ) |
rb | 以二進位制讀模式開啟 |
wb | 以二進位制寫模式開啟 (參見 w ) |
ab | 以二進位制追加模式開啟 (參見 a ) |
rb+ | 以二進位制讀寫模式開啟 (參見 r+ ) |
wb+ | 以二進位制讀寫模式開啟 (參見 w+ ) |
ab+ | 以二進位制讀寫模式開啟 (參見 a+ ) |
3、透過open獲取到的檔案控制程式碼可以對檔案作的其他操作
(1)fp.closed
判斷檔案是否已經關閉。返回true如果檔案已被關閉,否則返回false
(2)fp.mode
輸出讀寫模式。返回被開啟檔案的訪問模式。
(3)fp.name:
返回檔案的名稱。
(4) fp.softspace
如果用print輸出後,是否跟一個空格符,false不列印,true則列印。
(5)fp.close()
重新整理緩衝區裡任何還沒寫入的資訊,並關閉該檔案,這之後便不能再進行寫入。
(6)flush()
把緩衝區中的內容持久化寫到磁碟裡
快取區寫滿的情況,系統會自動呼叫flush()方法。
呼叫flush的時機:寫入了多少長度的資料,或者間隔了多長的時間
如果沒有flush(),持久化內容丟失
(7)next()
1
2 |
for
i
in
fp:
print
i |
把一個file用for...in file這樣的迴圈遍歷語句時,就是呼叫next()函式來實現。
1
2
3
4
5 |
fp
=
open
(fileName,
'r'
) print
fp.
next
() print
fp.
next
() print
fp.fileno()
#判斷當前操作的檔案控制程式碼是哪一個number fp.close() |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952502/viewspace-2942930/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python對檔案的操作方法Python
- python 檔案操作的基礎總結Python
- 安全檔案和大物件開發手冊總結物件
- MyBatis配置檔案總結MyBatis
- 檔案路徑總結
- Htaccess檔案用法總結
- python異常大總結Python
- python檔案操作-讀寫刪除複製總結Python
- PHP檔案包含小總結PHP
- 密碼檔案資訊總結密碼
- oracle 檔案型別總結Oracle型別
- JavaScript 檔案操作方法詳解JavaScript
- 《linux檔案許可權管理大總結》RHEL6Linux
- python中的__init__.py檔案和導包總結Python
- Python常用配置檔案ini、json、yaml讀寫總結PythonJSONYAML
- python讀取大檔案Python
- Python處理大檔案Python
- 【巴山】Asp.NET大檔案上傳元件開發總結(二)---提取檔案內容ASP.NET元件
- jQuery和原生JavaScript的操作方法總結jQueryJavaScript
- java NIO 常用的檔案操作方法Java
- C#檔案操作方法大全C#
- C#讀寫檔案總結C#
- Spring Boot 配置檔案總結Spring Boot
- 檔案上傳漏洞總結(全)
- 關於控制檔案的總結
- C++檔案讀寫總結C++
- Linux大檔案重定向和管道的效率對比總結Linux
- 總結 | 外貿人不可錯過的大檔案傳輸工具!
- python 解決讀取檔案時格式不支援的總結Python
- python常用函式年初大總結Python函式
- python如何讀取大檔案Python
- Python 如何處理大檔案Python
- Python解析xml大檔案(sax)PythonXML
- sqlserver關於filestream檔案流、filetable檔案表的總結SQLServer
- 這些大檔案傳輸工具總結,建議外貿人士收藏
- 檔案屬性及find命令總結
- Web檔案上傳方法總結大全Web
- Linux 檔案許可權總結Linux