8.Python初窺門徑(文件操做)

Python (文件操做)

1、文件操做方式

  1. 打開文件 open
  2. 操做文件 read or write
  3. 關閉文件 close

2、打開文件的方式(第一種)

  1. 語法 :python

    f=open("文件",mode="模式",encoding="編碼")安全

    • open() # 調用操做系統打開文件
    • mode() # 對文件的操做方式,("")內填入文件的操做方式.
    • encoding= # 文件的編碼,=""跟着編碼方式
    • f # 文件句柄
  2. 注意 : 使用原生字符能夠解決\的問題,在"文件"前加r)網絡

    # 不使用r時
    f=open("D:\\Git\\Git存儲\\學習.txt",mode="r",encoding="UTF-8")
    # \\用來和python中的一些關鍵字作區分,不用\\表示可能會出錯
    ---------------------------------
    # 使用r時
    f=open(r"D:\Git\Git存儲\學習.txt",mode="r",encoding="UTF-8")
    # 此時的r是repr的簡稱,repr做用是保持原始狀態消除關鍵字功能.

3、文件操做方式 (注意 : 換行符\n)

  1. r w a 操做的都是文本app

    讀 : r (讀後光標會移動到最後)學習

    • f.read() # 讀取所有,()內能夠加入數字,表明按照字符讀取
    • f.readline() # 讀取一行內容內的多個字符
    • f.readines() # 一行一行讀取,存儲到列表中

    寫 : w a (w時沒有文件建立文件,有文件分兩步,先清空在寫入)編碼

    • w時,f.write() # 文件開頭寫入
    • a時,f.write() # 文件末尾寫入
  2. r+(讀寫),w+(寫讀),a+(追加寫讀)操作系統

    • 後期開發中使用頻率比較低,使用時注意光標位置
  3. rd r+d wb w+bab 操做非文本文件code

    • 讀取本地非文本文件時,讀方式和操做讀文本方式同樣,只須要注意文件類型而且操做方式改爲rd便可ip

      f = open("1.jpg",mode="rb")
      print(f.read())  # read()  所有讀取
      print(f.read(3)) # 字節
    • 下載並保存網絡文件時,須要調用import requests,實例以下內存

      import requests
      ret=requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")
      f = open("2.jpg",mode="wb")
      f.write(ret.content)
      f.close()

4、文件其它操做方式

  1. f.tell() # 查看光標所在的字節位置,會有返回值,返回值就是當前光標的位置

  2. f.seek(偏移量,位置) # 移動光標字節位置

    • 偏移量 : 按照字節來算,與所用的文件編碼有關.

    • 位置 : 0表明開頭位置,1表明當前位置,2表明末尾位置

      seek(0,0) # 文件開始位置
      seek(0,1) # 光標的當前位置
      seek(0,2) # 文件末尾位置
      seek(3) # 按照字節調節,使用utf-8漢字是3,gbk漢字是2

5、文件路徑分類

  1. 絕對路徑 : 從磁盤的跟處查找

  2. 相對路徑 : 相對於當前文件進行查找,../表明上一級,查看當前工做路徑調用 import os

    import os
    print(os.getcwd()) # 查看當前工做路徑

6、文件安全讀取方式

  • 運用for迭代方式直接對f進行迭代讀取,不會由於文件過大,撐爆內存.

    f=open("文件",mode="模式",encoding="編碼")
    for i in f:

7、打開文件的方式(第二種)

  1. 語法 :

    with open("文件路徑1",mode="操做方式",encoding="編碼方式") as f1, open("文件路徑2",mode="操做方式",encoding="編碼方式") as f2 :

    lis=[]
    num=1
    with open("a1",mode="r",encoding="utf-8") as f:
        for r in f: # 注意縮進
            dic = {}
            lis1=r.strip().split(" ")
            if num==1:
                lis2=lis1.copy()
            else:
                for i in range(len(lis2)):
                    dic[lis2[i]]=lis1[i]
                lis.append(dic)
            num+=1
    print(lis)
  2. 做用 :

    • 此方式系統會自動幫助關閉文件
    • 能夠同時操做多個文件
    • 能夠同時操做一個文件.
相關文章
相關標籤/搜索