標籤:自動換行 二進位檔案 mode hex get txt mat 儲存 內容
按照檔案組織的形式,python檔案可以分為文字檔和二進位檔案
文字檔的每一個位元組放一個ASCii碼,代表一個字元。二進位檔案把記憶體中的資料按照在記憶體中的儲存形式原樣 輸出到磁碟上存放。
開啟與關閉檔案:open()、close()
格式:檔案對象=open(檔案說明符[,開啟檔案][,緩衝區])
f = open("c:\\a.txt","r")#以讀的形式開啟檔案#注意檔案目錄一定要用雙\\
開啟檔案: r w a rb wb ab r+ w+ a+ rb+ wb+ ab+
r 方式只能從記憶體中輸出資料 不能像記憶體中添加資料
w 只能從記憶體向該檔案寫資料 不能從檔案向記憶體輸入資料
a 添加 注意當前位置是文檔末尾
r+ w+ a+ 可以寫入和讀取
檔案屬性:
f = open("file.txt","wb")#擷取檔案名稱f.name # file.txt#擷取檔案開啟的方式f.mode # "wb"#擷取資訊:檔案是否關閉了f.closed # False#關閉檔案f.close
讀寫操作讀操作
read()
- 變數 = 檔案對象.read() 變數 = 檔案對象.read([count])
- re從一個開啟的檔案中讀取一個字串。需要重點注意的是,Python字串可以是位元據,而不是僅僅是文字。
‘‘‘kk.txt 裡面內容:abcdefghijklmn‘‘‘# 開啟檔案fo = open("kk.txt", "r+")str = fo.read(10);print ("讀取的字串是 : ", str)# 關閉開啟的檔案fo.close()#輸出讀取的字串是 :abcdefghij
readline()
- 讀取當前位置到行末的所有字元,包括行結束符
- 變數=檔案對象.readline() 當處於檔案末尾 則返回空串 " "
readlines()
從當前位置直到檔案末尾的所有行 將所有行構成列表傳回值
寫操作
write()
- 在當前位置寫入字串,並返回字元的個數
- 檔案對象.write(字串) write()執行後並不會自動換行,如果需要換行可以加入\n
f = open("kk.txt", "wb")f.write( "ya this is kumata!\nyou know,heyo"); # 關閉開啟的檔案f.close()
#linux環境下$ cat kk.txt
ya this is kumata!
you know,heyo
writelines()
- 在當前位置依次寫入列表中的所有字串
- 檔案對象.writelines(字串的元素列表)
二進位檔案操作檔案的定位
檔案對象.tell(): 返回當前位置
檔案對象.seek(位移[,參考點]) ,seek例子見 CSDN:seek()
struct模組
pack() 把整型號和浮點型打包為二進位的字串。
unpack()二進位打包成整型號浮點型
pickle模組:把對象醃製成二進位檔案儲存
dump() pickle.dump(資料,檔案對象)
import picklelist = [‘12‘,‘34‘,‘ok‘,‘很好‘]f = open("D:kk.pkl","wb") #二進位寫入pickle.dump(list,f)f.close()
os模組
#檔案重新命名 rename() os.rename("當前檔案名稱“,”新檔案名稱“)#檔案刪除 remove() os.remove("檔案名稱")#在目前的目錄建立目錄 os.mkdir("新的目錄名“)#改變目前的目錄os.chdir("目錄“)#得到目前的目錄os.getcwd()#刪除空目錄 os.rmdir("待刪除的目錄 ")
Python:檔案操作