1. 程式人生 > >分分鐘鐘學會Python - 第四章 文件操作

分分鐘鐘學會Python - 第四章 文件操作

repl cnblogs key 進行 學會 讀取 只讀 ace lua

4.1 文件基本操作

obj = open(‘路徑‘,mode=‘模式‘,encoding=‘編碼‘)
obj.write()  # 寫入
obj.read()   # 讀取
obj.close()  #關閉

4.2 打開模式

  • r / w / a 【只讀只寫字符串】 *
  • r+ / w+ / a+ 【可讀可寫字符串】
  • rb / wb / ab 【只讀只寫二進制】 *
  • r+b / w+b / a+b 【可讀可寫二進制】

4.3 操作

  • read() , 全部讀到內存

  • read(1)

    • 1表示一個字符

      obj = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘)
      data = obj.read(1) # 1個字符
      obj.close()
      print(data)
    • 1表示一個字節

      obj = open(‘a.txt‘,mode=‘rb‘)
      data = obj.read(3) # 1個字節
      obj.close()
  • write(字符串)

    obj = open(‘a.txt‘,mode=‘w‘,encoding=‘utf-8‘)
    obj.write(‘中午你‘)
    obj.close()
  • write(二進制)

    obj = open(‘a.txt‘,mode=‘wb‘)
    
    # obj.write(‘中午你‘.encode(‘utf-8‘))
    v = ‘中午你‘.encode(‘utf-8‘)
    obj.write(v)
    
    obj.close()
  • seek(光標字節位置),無論模式是否帶b,都是按照字節進行處理。

    obj = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘)
    obj.seek(3) # 跳轉到指定字節位置
    data = obj.read()
    obj.close()
    
    print(data)
    
    obj = open(‘a.txt‘,mode=‘rb‘)
    obj.seek(3) # 跳轉到指定字節位置
    data = obj.read()
    obj.close()
    
    print(data)
  • tell(), 獲取光標當前所在的字節位置

    obj = open(‘a.txt‘,mode=‘rb‘)
    # obj.seek(3) # 跳轉到指定字節位置
    obj.read()
    data = obj.tell()
    print(data)
    obj.close()
  • flush,強制將內存中的數據寫入到硬盤

    v = open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘)
    while True:
        val = input(‘請輸入:‘)
        v.write(val)
        v.flush()
    
    v.close()

4.4 關閉文件

文藝青年

v = open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘)

v.close()

二逼

with open(‘a.txt‘,mode=‘a‘,encoding=‘utf-8‘) as v:
    data = v.read()
    # 縮進中的代碼執行完畢後,自動關閉文件

4.5 文件內容的修改

with open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) as f1:
    data = f1.read()
new_data = data.replace(‘飛灑‘,‘666‘)

with open(‘a.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f1:
    data = f1.write(new_data)

大文件修改

f1 = open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘)
f2 = open(‘b.txt‘,mode=‘w‘,encoding=‘utf-8‘)

for line in f1:
    new_line = line.replace(‘阿斯‘,‘死啊‘)
    f2.write(new_line)
f1.close()
f2.close()
with open(‘a.txt‘,mode=‘r‘,encoding=‘utf-8‘) as f1, open(‘c.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f2:
    for line in f1:
        new_line = line.replace(‘阿斯‘, ‘死啊‘)
        f2.write(new_line)

分分鐘鐘學會Python - 第四章 文件操作