最近在網課中學習了python的文件操作,所以把老師上課講的都記錄了下來,作為筆記
開啟文件
可直接使用open函式,使用形式為1open(文件位址,操作形式)
操作形式有以下幾個1
7r 唯讀模式
w 覆蓋寫模式
x 建立寫模式
a 追加寫模式
b 二進位制文件模式
t 文字文件模式
+ 與r/w/x/a一同使用,在原功能基礎上增加讀寫功能
當操作形式引數為空時,預設為唯讀模式與文字文件模式
還有幾個可選引數,例如encoding,可設定編碼格式
看下面這個例子1fh = open("d:/blog/文字1.txt", "rt", encoding = "utf-8")
這個語句就是以唯讀文字文件的模式,編碼格式為」utf-8」,開啟文字1
關閉文件
用close函式即可1fh.close()
注意:文件開啟後一定要關閉,否則容易出問題
文件讀取
有這幾個函式1
3a.read(size = -1) 讀入全部內容,如果給出引數,讀入前size長度
a.readline(size = -1) 讀入一行內容,如果給出引數,讀入該行前size長度
a.readlines(hint = -1) 讀入文件所有行,以每行為元素形成列表,如果給出引數,讀入前hint行
看下面乙個例子1
9fh = open("d:/blog/文字1.txt", "rt", encoding = "utf-8")
x = 0
while true:
line = fh.readline()
if(len(line) == 0 and x >= 10):
break
print(line)
x += 1
fh.close()
這段**的作用便是一行行的讀取文字文件,並將每行輸出,當讀到第十行以後的空行時,停止讀取
文件的寫入
有這幾個函式1
2fh.write(s) 向文件寫入乙個字串或位元組流
fh.writelines(lines) 將乙個元素全為字串的列表寫入文件(拼接以後寫入到一行當中)
看乙個例子1
8data = "一起學python"
fh = open("d:/blog/文字1.txt", "w")
fh.write(data)
fh.close()
data2 = "學好python"
fh2 = open("d:/blog/文字1.txt", "w")
fh2.write(data2)
fh2.close()
執行以後開啟文件,會發現結果是這樣的
因為以「w」模式開啟文件,會將原內容覆蓋
想要正確讀寫文件,只需改變文件開啟模式為」a「或」a+「1
8data = "一起學python"
fh = open("d:/blog/文字1.txt", "w")
fh.write(data)
fh.close()
data2 = "學好python"
fh2 = open("d:/blog/文字1.txt", "a+")
fh2.write(data2)
fh2.close()
結果是這樣
注意:開啟文件後一定要關閉文件,否則文件內容無法更新
改變文件操作指標位置1fh.seek(offset) 改變當前文件操作指標的位置,offset含義:0-文件開頭 1-當前位置 2-文件結尾
看乙個例子1
7fh = open("d:/blog/output.txt", "w+")
ls = ["中國", "法國", "美國"]
fh.writelines(ls)
fh.seek(0)
for line in fh:
print(line)
fh.close()
**作用是將寫入文件的內容輸出
注意:fh.seek(0)一定要新增,否則什麼都輸出不了,因為沒有改變位置
菜鳥學python文件 菜鳥學習python筆記
1.模組 三種呼叫方法 1.在vim寫的乙個python的檔案 運用import 匯入,就可以在互動模式的直接進行呼叫 2.呼叫模組裡面的某個函式 from 模組名字 in 函式名字 3.將模組名字變短進行呼叫 import 模組原名 as 新名字 2.基於python開發的東西存放目錄 usr l...
python 文件操作
r 預設值 表示從檔案讀取資料。w 表示要向檔案寫入資料,並截斷以前的內容。a 表示要向檔案寫入資料,但是新增到當前內容尾部。r 表示對檔案進行讀寫操作 刪除以前的所有資料 r a 表示對檔案進行讀寫操作 新增到當前內容尾部 b 表示要讀寫二進位制資料。import re f open book 2...
Python文件操作
open c users second one desktop a.txt 檔案路徑必須完整路徑且為字串格式 有三種方式 open c users second one desktop a.txt open c users second one desktop a.txt open r c user...