python_檔案操作學習01
阿新 • • 發佈:2018-12-22
1.檔案的開啟與關閉
<1>檔案的開啟
在python,使用open函式,可以開啟一個已經存在的檔案,或者建立一個新檔案
open(檔名,訪問模式)
f = open('test.txt', 'w')
訪問模式:
r | 以只讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
w | 開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a | 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
rb | 以二進位制格式開啟一個檔案用於只讀。檔案指標將會放在檔案的開頭。這是預設模式。 |
wb | 以二進位制格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
ab | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
r+ | 開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
w+ | 開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a+ | 開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 |
rb+ | 以二進位制格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
wb+ | 以二進位制格式開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
ab+ | 以二進位制格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 |
<2>關閉檔案
close()
# 新建一個檔案,檔名為:test.txt
f = open('test.txt', 'w')
# 關閉這個檔案
f.close()
2.檔案的讀寫
<1>寫資料(write)
使用write()可以完成向檔案寫入資料
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()
- 如果檔案不存在那麼建立,如果存在那麼就先清空,然後寫入資料
-
f = open('test.txt', 'r') content = f.read(5) print(content) print("-"*30) content = f.read() print(content) f.close()
- 如果open是開啟一個檔案,那麼可以不用謝開啟的模式,即只寫
open('test.txt')
- 如果使用讀了多次,那麼後面讀取的資料是從上次讀完後的位置開始
- <3>讀資料(readlines)
- 就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性讀取,並且返回的是一個列表,其中每一行的資料為一個元素
-
content = f.readlines()
<4>讀資料(readline)
content = f.readline()
print("1:%s"%content)
輸出:1:hello world,i am here!
<5>獲取當前讀寫的位置
在讀寫檔案的過程中,如果想知道當前的位置,可以使用tell()來獲取
# 查詢當前位置
position = f.tell()
print "當前檔案位置 : ", position
<6>定位到某個位置
如果在讀寫檔案的過程中,需要從另外一個位置進行操作的話,可以使用seek()
seek(offset, from)有2個引數
- offset:偏移量
- from:方向
- 0:表示檔案開頭
- 1:表示當前位置
- 2:表示檔案末尾
demo:把位置設定為:從檔案開頭,偏移5個位元組
# 查詢當前位置
position = f.tell()
print "當前檔案位置 : ", position
# 重新設定位置
f.seek(5,0)
# 查詢當前位置
position = f.tell()
print "當前檔案位置 : ", position
demo:把位置設定為:離檔案末尾,3位元組處
# 開啟一個已經存在的檔案
f = open("test.txt", "r")
# 查詢當前位置
position = f.tell()
print "當前檔案位置 : ", position
# 重新設定位置
f.seek(-3,2)
# 讀取到的資料為:檔案最後3個位元組資料
str = f.read()
print "讀取的資料是 : ", str
f.close()
檔案的重新命名、刪除
<7>檔案重新命名
os模組中的rename()可以完成對檔案的重新命名操作
rename(需要修改的檔名, 新的檔名)
import os
os.rename("畢業論文.txt", "畢業論文-最終版.txt")
<8>刪除檔案
os模組中的remove()可以完成對檔案的刪除操作
remove(待刪除的檔名)
import os
os.mkdir("saaaa")
<9>獲取當前目錄
os.getcwd()
<10>改變預設目錄
os.chdir("../")
<11>獲取目錄列表
os.listdir("./")
<12>刪除資料夾
os.rmdir("aaa")