python二十一:文件操作
生活随笔
收集整理的這篇文章主要介紹了
python二十一:文件操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文件處理流程1.打開文件,得到文件句柄并賦值給一個變量2.通過句柄對文件進行操作3. 關閉文件# r:文件讀模式
f = open("undo", 'r', encoding="utf-8");
# 讀取文件數據
data = f.read()
print(data)
# 關閉文件句柄
f.close()# 判斷文件是否可讀
f.readable()# 讀取文件的一行
f.readline()# 把文件中的內容放到列表中(每一行是一個元素)
f.readlines()
# 如果undo文件存在,會清空undo文件,然后再寫
# 如果undo文件不存在,則會新建undo文件,再寫
# 文件寫模式
f = open("undow",'w', encoding="utf-8");判斷文件是否可寫
f.writable()
# 將字符串寫入文件
f.write("天下大事分久必合,合久必分\n")
f.write("東漢末年,黃巾起義\n")
# 將列表中的每個元素寫入文件
f.writelines(['一壺濁酒喜相逢\n','初來還是座上客\n'])
# 關閉文件句柄
f.close()
# 追加的模式寫入文件
f = open("undow",'a', encoding="utf-8");
f.write("古今多少事,\n");
f.write("都付笑談中\n");
f.close()
# 使用 with..as 關鍵字,打開文件,會自動關閉文件句柄(f.close())
with open("undow", "r", encoding="utf-8") as f:data = f.read()print(data)
'b'表示以字節方式操作rb 或 r+bwb 或 w+bab 或 a+b
以字節方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼.8個二進制位(bits)是一個字節(byte) 1G = 1024M, 1M = 1024K, 1K = 1024Bytes 1bytes = 8bitswith open("undow2", "rb") as f:# 將讀取到的二進制數據,解碼成字符串,然后打印print(f.read().decode())with open("undow2", "wb") as f:# 先將字符串編碼成二進制,然后把二進制保存到硬盤f.write("tianxia\n天下".encode())with open("undow2", "ab") as f:# 先將字符串編碼成二進制,然后把二進制保存到硬盤f.write("tianxia\n天下".encode())
# 查看文件是否是關閉狀態
f.closed# 將內存中數據刷到硬盤
f.flush()# 光標在文件內的移動: read(6),代表讀取6個字符. 其他方法的光標移動都是以字節為單位,如seek,tell,truncate方法# 查詢光標的位置
v = f.tell()
# 移動光標到指定位置
f.seek(10)
# 截取文件, 截取的文件必須要用 r+, a+方式打開
# 不要用w+方式,w+方式打開,會直接覆蓋文件,那么再調用truncate(),則沒有意義了
f.truncate(4)
# 從文件最后,定位光標
f = open("undow2", 'rb')
offset = -6while True:# seek方法第2個參數是2,表示從文件最后,定位光標f.seek(offset, 2)data = f.readlines()if len(data) > 1:print("最后一行數據是:%s" % (data[-1].decode("utf-8")))breakoffset = offset * 2
?
總結
以上是生活随笔為你收集整理的python二十一:文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C六:define宏定义
- 下一篇: python二十二:迭代,三元表达式,列