1. 程式人生 > >Python中文件的操作

Python中文件的操作

取模 buffer 終端設備 整型 大小 字節數 返回值 readline pan

文件的操作介紹

文件打開的方法

主要有兩種:

  1. no with

    格式:open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    常用:variable = open(‘路徑\文件‘,mode,encoding=None)
         variable.close()
    #不使用with方法時,在文件操作結束時要關閉文件
    
  2. with

    格式:with open(‘路徑\文件‘,mode,encoding=None) as variable:
    #該方法比較常用,在文件操作結束時不需要手動關閉文件,該方法默認自動關閉文件。
    

文件的打開模式

  1. r

    只讀模式(默認),如果文件不存在將報錯。

  2. w

    只寫模式:可寫,不可讀,如果文件不存在,將創建,存在將進行覆蓋。

  3. a

    追加模式:可寫,不可讀,文件不存在就創建,文件存在就在文件末尾追加。

  4. +

    表示同時讀寫操作:r+/w+/a+

    r+:可讀可寫,文件不存在將報錯。
    w+:可讀可寫,文件不存在將創建,存在將覆蓋。
    a+:可讀可寫,文件不存在將創建,存在將在文件末尾追加。            
    
  5. U

    將 \r \n \r\n自動轉換為 \n(在讀取模式使用:rU/r+U)

  6. b

    二進制格式存儲文件內容:rb/wb/ab/r+b/w+b/a+b

    rb:二進制格式讀文件,可讀,不可寫,文件不存在將報錯。
    wb:二進制格式寫文件,不可讀,可寫,文件不存在,將創建,文件存在將覆蓋。
    ab:二進制格式追加文件內容,不可讀,可寫,文件存在直接追加,不存在將創建。
    r+b:二進制格式讀寫文件,可讀,不可寫,文件不存在將報錯。
    w+b:二進制格式寫讀文件,可讀,可寫,文件不存在,將創建,文件存將覆蓋。
    a+b:二進制格式追加文件內容,可讀,可寫,文件不存在將創建,文件存在將追加在末尾。
    

    註:讀寫內容時需要使用字符串的編碼和解碼操作str.encode(‘utf-8‘)和str.decode(‘utf-8‘),默認格式也是utf-8,因此括號內的編碼格式可以忽略不寫。

文件的常用操作

  1. close(關閉文件)

    格式:file.close()
    #該方法主要用於no with的打開文件情況下。
    
  2. detach(分離)

    格式:file.detach()
    #該方法主要用於返回緩存區打開文件的路徑和模式,日常很少使用。
    
  3. fileno(文件描述符) 格式:file.fileno() #返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。

  4. flush(刷新)

    格式:file.flush()
    #刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。
    
  5. isatty(終端)

    格式:file.isatty()
    #如果文件連接到一個終端設備返回 True,否則返回 False。
    
  6. read(按字節讀取文件)

    格式:file.read(size=-1)
    #文件讀取指定的字節數,如果未給定或為負則讀取所有。
    
  7. readable(是否可讀)

    格式:file.readable()
    #判斷文件是否可讀,可讀則返回True,否則返回False。
    
  8. readline(按行讀文件) 格式:file.readline(size=-1) #讀取整行,包括 "\n" 字符,如果未給定或為負則讀取一行。如果指定字節大小小於該行長度時,則只讀取到第一行第N個字節。如果大於該行長度,則繼續讀下一行。
  9. seek(指定指針位置)

    格式:file.seek(whence=0)
    #指定指針位置,文件的開始指針位置為0。
    
  10. seekable(指針是否可變)

    格式:file.seekable()
    #判斷指針是否可改變,如果可以改變則返回Ture,否則返回False。
    
  11. tell(顯示指針位置)

    格式:file.tell()
    #返回當前指針位置。
    
  12. truncate(截取文件)

    格式:file.truncate(pos=None)
    #指定截取N個字節,從0開始,0-N保留,N之後的全部刪除,該方法只能用於可寫模式。
    
  13. write(寫入)

    格式:file.write(text)
    #把內容填寫到文件中。
    
  14. writable(是否可寫)

    格式:file.writabel()
    #判斷文件是否可寫,如果可寫,則返回True,否則返回值False。
    
  15. readlines(讀每行)

    格式:file.readlines(hint=-1)
    #一行一行讀取文件內容,並把讀取到的數據以列表的形式返回,默認讀全部文件,指定字節時,如果指定的長度小於該行長度,則只讀取該行內容,如果指定長度大於該行長度,則繼續讀下一行。
    
  16. writelines(序列寫入)

    格式:file.writelines(lines)
    #把序列寫入到文件中,接收參數可以是一個序列,也可以是一個字符串,write只能接收字符串。
    

常用的文件屬性

  1. buffer
  2. closed(是否關閉)

    格式:file.closed
    #判斷文件是否已經關閉,如果已經關閉,則返回True,否則返回False。
    
  3. encoding
  4. errors
  5. line_buffering
  6. name

    格式:file.name
    #返回文件的名字
    
  7. newlines

Python中文件的操作