檔案與檔案系統
開啟檔案
open(file, mode='r', buffering=none, encoding=none, errors=none, newline=none, closefd=true)
開啟模式
執行操作
『r』以唯讀方式開啟檔案,檔案的指標將會放在檔案的開頭
『w』開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除;如果該檔案不存在,建立新檔案。
『x』寫模式,新建乙個檔案,如果該檔案已存在則會報錯
『a』追加模式,開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾,新的內容將會被寫入到已有內容之後;如果該檔案不存在,建立新檔案進行寫入
『b』『t』
以文字模式開啟(預設),一般用於文字檔案,如txt
『+』可讀寫模式(可新增到其它模式中使用)
檔案物件方法
f =
open
('將進酒.txt'
,'r'
) line = f.readline(
)print
(line)
# 君不見,黃河之水天上來,奔流到海不復回。
line = f.readline(
)print
(line)
# 君不見,高堂明鏡悲白髮,朝如青絲暮成雪。
f.seek(0,
0)line = f.readline(
)print
(line)
# 君不見,黃河之水天上來,奔流到海不復回。
f.close(
)
f =
open
('workfile.txt'
,'wb+'
)print
(f.write(b'0123456789abcdef'))
# 16
print
(f.seek(5)
)# 5
print
(f.read(1)
)# b'5'
print
(f.seek(-3
,2))
# 13
print
(f.read(1)
)# b'd'
簡潔的 with 語句
os 模組中關於檔案/目錄常用的函式
不同作業系統底層對於檔案系統訪問的工作原理是不一樣的,os(operation system)模組用於選擇正確的模組並呼叫,不需要考慮作業系統的差異
序列化與反序列化
python 的pickle
模組實現了基本的資料序列和反序列化
通過pickle
模組的序列化操作能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;
通過pickle
模組的反序列化操作,能夠從檔案中建立上一次程式儲存的物件。
最常用的函式為:
練習題
開啟中文字元的文件時,會出現亂碼,python自帶的開啟檔案是否可以指定文字編碼?還是只能用相關函式?
open
方法可以指定要開啟檔案的編碼方式
編寫程式查詢最長的單詞
"""
input file
test.txt
output file
['general-purpose,', 'object-oriented,']
"""def
longest_word
(filename)
: dic =
f =open
(filename,
'r')
lines = f.readlines(
)for line in lines:
line = line.split(
',')
for charac in line:
dic[charac]
=len
(charac)
ma =
max(dic.values())
keys =
for key, value in dic.items():
if value == ma:
f.close(
)return keys
Python9 檔案操作
檔案的開啟 open 1.py r r 以唯讀開啟檔案 w 開啟檔案用於寫入 a 開啟乙個檔案追加 rb,wb,ab 以二進位制方式操作 r w a 開啟檔案可讀寫 rb wb ab 以二進位制方式開啟檔案可讀寫 close 關閉檔案操作 read 讀取檔案 內可放要讀的位元組數,如 read 1 ...
9 檔案與檔案系統
1.讀寫檔案 open 方法用於開啟乙個檔案,並返回檔案物件 注意 1 使用 open 方法一定要保證關閉檔案物件,即呼叫 close 方法。2 open 函式常用形式是接收兩個引數 檔名 file 和模式 mode open file mode r fo open r.txt wb print 檔...
Day 9 檔案與檔案系統
在寫入其他型別的物件之前,需要先把它們轉化為字串 在文字模式下 或者位元組物件 在二進位制模式下 f.read size 檔案末尾 f.read 將返回乙個空字串 f.readline 從文中讀取 for line in f print line,end this is the first line...