python五 文件操作

#文件的操作流程爲 打開-->操作--->關閉 
#file = open(filename, mode, encoding) 

# filename:file_name變量是一個包含了你要訪問的文件路徑的字符串值。

# mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。
#             這個參數是非強制的,默認文件訪問模式爲只讀(r)。

# encoding: 以什麼編碼方式來打開文件,文件使用什麼編碼存儲就要用什麼樣的編碼打開
#           否則就會產生亂碼

注意事項:
        文件操作後一定要關閉!否則打開的文件資源會一直佔用內存資源


# 打開方式1, 這種方式在使用結束後,會自動關閉文件
path = "d:\hello.txt"
with open(path, "w") as f:
    pass

# 打開方式2,使用後,要手動關閉
# 以只讀方式打開文件時,如果文件不存在會報錯,這時應該進行錯誤處理
f = open(path, "w")

# 文件的打開模式
# w:這是寫模式,如果存在同名文件那麼該文件會被覆蓋,不存在時會直接創建該文件
#        只能創建文件不能創建不存在的父級目錄
#       這是以字符操作的方式打開一個文件那麼在寫入內容時也按字符寫入
# r: 只讀模式,最開始時光標在文件開始的地方
# a: append追加,在文件尾追加內容,不能讀內容
# r+:讀寫打開,先讀文件再寫
# w+:寫讀打開,先創建文件再寫,然後才能讀,是在末尾寫入的----這種模式不常用
#   文件只能在最後進行寫入,如果是在文件中間進行插入那麼新內容會覆蓋舊內容
#  a+:追加讀,默認追加不能讀
# 還有針對二進制的打開方式
# rb/wb/rb+/wb+/ab/ab+:用法同字符操作時一樣




# 文件方法可以分爲四類: 讀取, 寫入, 文件遊標操作, 以及其他輔助功能.

# 文件的讀取操作
# 以只讀方式打開
f = open(r"d:/myfile/test.txt", "r")


# read(size = -1) 默認值是-1讀取文件的全部內容,如果傳入參數,那麼會讀取指定個數的字符,是字符不是字節
f.read(5)
f.close()


# readline(size = -1) 默認值是-1,讀取文件的一行,否則返回一行的指定字符個數
f = open(r"d:/myfile/test.txt", "r")
f.readline()
f.close()


# readlines(size = -1) 以列表的形式返回文件中的所有行
f = open(r"d:/myfile/test.txt", "r")
f.readlines()
f.close()


# 文件的寫入操作

# 以追加的方式打開文件,大文件的末尾追加內容
f = open(r"d:/myfile/test.txt", "a")
f.write("hello this new end!")
f.close()


# 以寫的方式打開文件,如果原文件存在那麼會被覆蓋
f = open(r"d:/myfile/test.txt", "w")
f.write("hello this new end!")
f.close()


# 文件遊標操作
f = open(r"d:/myfile/test.txt", "r+")
# 跳轉到指定的字節處,然後再進行操作,如果含有中文字符,容易出錯
f.seek(5) 
f.readline()
# f.close()

# 保留指定字節數的內容,其他內容捨去
f.truncate(25)
f.close()


# 文件對象的方法 操作
# file.close() 關閉文件
# file.fileno() 返回文件的描述符(file descriptor ,FD, 整數值)
# file.flush() 將緩存的內容寫入磁盤上
# file.isatty() 判斷 file 是否是一個類 tty 設備
# file.nexta() 返回文件的下一行(類似於 file.readline() ), 或在沒有其它行時
#              引發 StopIteration 異常
# file.read(size=-1) 從文件讀取 size 個字節, 當未給定 size 或給定負值的時候, 
#                    讀取剩餘的所有字節, 然後作爲字符串返回.如果字符模式打開,則read按字符讀取,
#                    否則按字節讀取
# file.readline(size=-1) 從文件中讀取並返回一行(包括行結束符), 或返回最大 size
# file=open('test','ab')
# file.write(bytes('hehe',encoding='utf-8')) 向文件寫入字符串,會覆蓋原有數據
# file.close() 關閉文件
# file.tell獲取當前指針的位置
# file.read()如果按字符模式打開,則read按字符讀取,否則按字節讀取
# file.fileno文件描述符
# file.truncat 截斷數據,清除文件指針之後的數據
# file.seek(off, whence=0) 在文件中移動文件指針, 
#         從 whence = 0 代表文件其始, 1代表當前位置, 2 代表文件末尾,偏移 off 字節,不論是否有中文,都以字節爲單位
# file.truncate(size=file.tell()) 截取文件到最大 size 字節, 默認爲當前文件位置
# file.writelines(seq) 向文件寫入字符串序列 seq(seq 應該是一個返回字符串的可迭代對象)
# file.readlines(sizhint=0) 讀取文件的所有行並作爲一個列表返回(包含所有的行結束符);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章