目錄python
文件是數據的抽象和集合編碼
文本文件 vs. 二進制文件3d
文件是數據的抽象和集合指針
文件是數據的抽象和集合code
"中國是個偉大的國家!"blog
中國是個偉大的國家!
b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\xa3\xa1'
f.txt文件保存: "中國是個偉大的國家!"字符串
# 文本形式打開文件 tf = open("f.txt", "rt") print(tf.readline()) tf.close()
# 二進制形式打開文件 bf = open("f.txt", "rb") print(bf.readline()) bf.close()
文件處理的步驟: 打開-操做-關閉input
# 讀文件 a.read(size) a.readline(size) a.readlines(hint)
# 寫文件 a.write(s) a.writelines(lines) a.seek(offset)
文件路徑和名稱:"D:/PYE/f.txt" 或 "D:\PYE\f.txt"it
源文件同目錄可省路徑:"./PYE/f.txt" 或 "f.txt"字符編碼
文件的打開模式 | 描述 |
---|---|
'r' | 只讀模式,默認值,若是文件不存在,返回FileNotFoundError |
'w' | 覆蓋寫模式,文件不存在則建立,存在則徹底覆蓋 |
'x' | 建立寫模式,文件不存在則建立,存在則返回FileExistsError |
'a' | 追加寫模式,文件不存在則建立,存在則在文件最後追加內容 |
'b' | 二進制文件模式 |
't' | 文本文件模式,默認值 |
'+' | 與r/w/x/a一同使用,在原功能基礎上增長同時讀寫功能 |
f = open("f.txt")
f = open("f.txt", "rt")
f = open("f.txt", "w")
f = open("f.txt", "a+")
f = open("f.txt", "x")
f = open("f.txt", "b")
f = open("f.txt"):f = open("f.txt", "wb")
<變量名>.close()
# 變量名爲文件句柄
# 文本形式打開文件 tf = open("f.txt", "rt") print(tf.readline()) tf.close()
# 二進制形式打開文件 bf = open("f.txt", "rb") print(bf.readline()) bf.close()
操做方法 | 描述 |
---|---|
<f>.read(size=-1) | 讀入所有內容,若是給出參數,讀入前size長度,s = f.read(2) # 中國 |
<f>.readline(size=-1) | 讀入一行內容,若是給出參數,讀入該行前size長度,s = f.readline() # 中國是一個偉大的國家! |
<f>.readlines(hint=-1) | 讀入文件全部行,以每行爲元素造成列表若是給出參數,讀入前hint行,s = f.readlines() # ['中國是一個偉大的國家!'] |
一次讀入,統一處理
fname = input("請輸入要打開的文件名稱:") fo = open(fname,"r") txt = fo.read() # 對全文txt進行處理 fo.close()
按數量讀入,逐步處理
fname = input("請輸入要打開的文件名稱:") fo = open(fname,"r") txt = fo.read(2) while txt != "": # 對txt進行處理 txt = fo.read(2) fo.close()
一次讀入,分行處理
fname = input("請輸入要打開的文件名稱:") fo = open(fname,"r") for line in fo.readlines(): print(line) fo.close()
分行讀入,逐行處理
fname = input("請輸入要打開的文件名稱:") fo = open(fname,"r") for line in fo: print(line) fo.close()
操做方法 | 描述 |
---|---|
<f>.write(s) | 向文件寫入一個字符串或字節流,f.write("中國是一個偉大的國家!") |
<f>.writelines(lines) | 將一個元素全爲字符串的列表寫入文件,ls = ["中國", "法國", "美國"];f.writelines(ls) # 中國法國美國 |
<f>.seek(offset) | 改變當前文件操做指針的位置,offset含義以下: 0 – 文件開頭; 1 – 當前位置; 2 – 文件結尾,f.seek(0) # 回到文件開頭 |
寫入一個字符串列表
fo = open("output.txt","w+") ls = ["中國", "法國", "美國"] fo.writelines(ls) for line in fo: print(line) # (沒有任何輸出) fo.close()
寫入一個字符串列表
fo = open("output.txt","w+") ls = ["中國", "法國", "美國"] fo.writelines(ls) fo.seek(0) for line in fo: print(line) # 中國法國美國 fo.close()