1. 程式人生 > >簡述 Python3 文件處理

簡述 Python3 文件處理

常用 字符串 是否 光標移動 指定 哈哈 打開 方式 color

1、文件處理

  找到文件 --> 打開文件 --> 操作:讀、寫 --> 保存 --> 關閉


1.1.1 寫文件

  (只要牽扯到文件操作,都是字符串;寫文件的時候需要把寫的數字轉換成字符串;utf-8 只有在存儲時才用。)

  

 1 f = open(歌詞, ‘w’ ,  endcoding = utf-8)    
 2 # f:文件操作符、文件句柄、文件操作對象
 3 # open 打開文件是依賴了操作系統提供的途徑
 4 # 操作系統有自己的編碼,open在打開文件的時候默認使用操作系統的編碼
 5
# win : gbk mac/Linux : utf-8 6 7 # 習慣給文件操作對象命名為: f file f_obj f_handler fh 8 9 print(f.writable()) # 判斷文件是否可寫 10 print(f.readable()) # 判斷文件是否可讀 11 12 f.write(6785675) # 寫文件時,需要寫數字的話,則會把數字轉換成字符串 13 f.write(sadasdas) # 寫入字符串內容 14 f.write(\nasasad) #
文件的換行 \n

15 f.write(哈哈) # 註意編碼的統一性 utf-8 Unicode gbk 16 17 f.close() # 結尾要加上close語句

註:

open() 打開文件是依賴了操作系統提供的途徑;
操作系統有自己的編碼,open在打開文件的時候默認使用操作系統的編碼(win gbk    mac/linux utf-8)

註:

‘\’ 轉義符號 前面加 r‘str’ 或者 \\ 可以取消轉義

1.1.2 找到文件詳解(find files):

文件與python的執行文件在同一路徑下的話,直接使用文件名就可以打開文件;
文件與python的執行文件不在同一路徑下的話,用絕對路徑找到文件;

文件的路徑需要用取消轉譯的方式來表示:
1)\\ 2)r路徑 如果以寫文件的方式打開一個文件,那麽不存在的文件會被創建,存在的文件之前內容會被清空

1.1.3 打開文件(open files):

打開方式:

文件句柄 = open(文件路徑, 模式) 

模式可以是一下方式以及他們之間的組合:

技術分享

#1. 打開文件的模式有(默認為文本模式):


r ,只讀模式【默認模式,文件必須存在,不存在則拋出異常】

w,只寫模式【不可讀;不存在則創建;存在則清空內容】

a, 之追加寫模式【不可讀;不存在則創建;存在則只追加內容】

#2. 對於非文本文件,我們只能使用b模式,"b"表示以字節的方式操作(而所有文件也都是以字節的形式存儲的,
  使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式)
rb wb ab 註:以b方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼

補充:

# b : 適用於圖片、音樂、視頻等任何文件
# 傳輸: 上傳、下載

# a :追寫內容(w的話會重新寫入內容,如果之前裏面有內容,會把前面的內容清空重新寫入)
# a+:追加可讀

# r+: 可讀可寫: 1)先讀後寫:寫是追寫
                2)先寫後讀:從頭開始寫

#w+ : 可寫可讀  :一上來文件就清空了 
    
      盡管可讀  :1)但是讀取出來的內容是你這次打開文件新寫入的
                2)光標在最後,需要主動移動光標才可以讀
f = open(歌詞, w+, encoding=utf-8)
f.write(abc\n)
f.write(哈哈哈)
f.seek(0)
print(f.read())

f.close()
# python (原生不支持直接修改)裏沒有直接修改文件的功能

總結:

# 一般情況下:文件操作要麽讀,要麽寫,很少會讀寫、寫讀同時用

# 常用的:    r、w、a
# rb, wb, ab 不需要指定編碼了

實例:

# 只顯示文件中有內容的行
# 已有shoplist文件,且文件內容中有有空行,要求只顯示文件中有內容的行

f = open(shoplist, encoding=utf-8)
goods_list = []
for line in f:
    if line.strip():
        print(line.strip())
f.close()

1.1.4 關閉文件詳解(close files):

操作系統級別的關閉文件資源:f.close()    # 必須寫

del f    主動釋放一個python程序內存的變量     # 可寫可不寫

1.2 讀文件:

打開文件 --> 讀取文件


1.2.1 讀取文件

1)讀取文件的第一種方式: read()的方法,用read方法會一次性的讀出文件中的所有內容
2)讀取文件的第二種方式: read(n),指定讀取n個單位
3)讀取文件的第三種方式: readline(),按照行讀取,每次執行就會往下讀一行
4)讀取文件的第四種方式: readlines(),返回一個列表,將文件中的每一行作為列表中的每一項返回一個列表
5)讀取文件的第五種方式: 
  最常用的讀取方法   
for i in f:   print(l.strip())


2.文件內光標移動:

1)seek:移動光標到第幾個字節的位置(一般作用:移動到最開始和最末尾)

seek(o)  :移動到最開始
seek(0,2)  :移動到最末尾
f.seek(3)    # 光標移動到三個字節的地方
content = f.read(2)    # 讀取兩個字符

2)tell : 告訴你光標在第幾個字節

3)truncate:截斷文件,所以文件的打開方式必須可寫,但是不能用w或w+等方式打開,因為那樣直接清空文件了,所以truncate要在r+或a或a+等模式下測試效果(保留n個字節)

簡述 Python3 文件處理