1. 程式人生 > >(D16)Python-檔案操作

(D16)Python-檔案操作

Python-檔案操作

檔案:file


我穿上大頭皮鞋,走在凌冽荒野


檔案:

  • 檔案時用於儲存資料的基本單位
  • 檔案通常用來長期儲存
  • 檔案中資料是以位元組為單位順序儲存

檔案的操作

  1. 開啟檔案
  2. 讀寫檔案
  3. 關閉檔案

注:檔案開啟數量有一定限制

檔案開啟函式

  • open(filename,mode=‘rt’):用於開啟一個檔案,返回返回操作此檔案的流物件,如果開啟失敗,觸發OSError

檔案物件的關閉方法

  • F.close() 關閉檔案 釋放系統資源

  • xxd filename: 檢視位元組十六進位制內容
  • repr() 還原字串的python 表示式
  • read() 依次逐個讀取
  • readline() 讀取位元組串返回
  • readlines() 以列表形式顯示一個或多個字元檔案

示例:

try:
    f = open('file.txt')
    print('檔案以相對路徑開啟成功')
except OSError:
    print('檔案操作失敗')
print(f.readline())
print(f.readline())
f.close()
print('檔案關閉成功')

文字檔案模組

  • 模式字元 ‘r’
    1.對文字檔案讀寫操作需要使用字串進行讀寫操作
    2.讀寫過程中會自動編碼解碼
    3.統一使用\n分隔

  • 文字檔案的寫操作:
    方法:
    F.write(x)
    F.wrutelines(列表)
    模式字串:
    ‘r’,‘w’,‘x’,‘a’,‘b’,‘t’
    二進位制檔案操作

    二進位制字元:”b“

    • 預設檔案中儲存的都是以位元組(byte)為單位的資料,通常有人為規則的格式,需要以位元組為單位進行讀寫
    • 對二進位制檔案的讀寫需要用字串(bytes) 或位元組
      陣列(bytearray)進行操作
    • 對於二進位制檔案讀寫方法都 需要用位元組為單位進行操作
     F.read(n)
     F.readline()
     F.readlines()
     F.write(位元組串)
     F.writelines(位元組串組成的列表)
    

F.seek方法

作用:
  • 設定檔案的讀寫位置,返回新的讀寫位置
格式:
  • F.seek(偏移量, whence=相對位置)
    偏移量

    • 大於0代表向檔案末尾方向移動
    • 小於0代表向檔案頭方向移動

    相對位置:

    • 0 代表從檔案頭開始偏移
    • 1 代表從當前讀寫位置開始偏移
    • 2 代表從檔案尾開始偏移

標準輸入輸出檔案:

模組名:
sys
  • sys.stdin 標準輸入檔案(預設為鍵盤)
  • sys.stdout 標準輸出檔案(預設為螢幕終端)
  • sys.stderr 標準錯誤輸出檔案(預設為螢幕終端)
  • 注: 標準檔案不需要開啟即可以使用,也不用手動關閉

十個漢字佔多少個位元組?

漢字編碼(只有兩種)

國標系列:

  • GB18030(二位元組或四位元組編碼, 27533個字)
  • GBK(二位元組編碼,20013個字)
  • GB2313(二位元組編碼,約7千多個字)
    (Windows常用)
    國際標準:
    • UNICODE(UNCODE16/UNICODE32) <-> UTF-8
      (Linux/Mac OS X/ IOS/ Android 常用)
    • UTF-8中:
      • 英文ASCII (0x0 - 0x7F) 一位元組
      • (0x80 - 0x3FF) 二位元組
      • (0x400 - 0xFFFF) 三位元組(中文在此區)

python 編碼字串:
  • ‘gb2312’
  • ‘gbk’
  • ‘gb18030’
  • ‘utf-8’
  • ‘ascii’
編碼註釋:
  • 在原始檔中,第一行或第二行寫入的如下內容是編碼註釋
    -- coding:gbk --

    -- coding:utf-8 --