Python 文件的讀取與寫入


1、 讀取文件,文件中沒有中文

  備注 : 

       文件名 : EnglishFile.txt

       文件位置 : 保存在所寫的.py文件的同級目錄,附上截圖,便於參考

       備注 : 文件位置可以改變,只需要把文件路徑傳對即可,這里給了截圖是怕有的小伙伴不知道文件該放在哪里,導致運行本程序出錯

       

      文件內容 :            

        
  第一種讀取方式 : read()  

  功能 : 讀取文件全部內容

  參數 : /

  返回類型 : 字符串

  備注 : /  

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')
print fileoperation.read()
fileoperation.close()

  運行結果

This is what's in testFile: first line, 
this is what's in testFile: second line
this is what's in testFile: third line

  第二種讀取方式 : readlines() 

  功能 : 逐行讀取,但是也讀取完文件

  參數 : / 

  返回類型 : list列表

  備注 : / 

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')

fileMessages = fileoperation.readlines()
for fileMessage in fileMessages:
    print fileMessage,

fileoperation.close()

  運行結果

This is what's in testFile: first line, 
this is what's in testFile: second line
this is what's in testFile: third line

  第三種讀取方式 : readline()  

  功能 : 逐行讀取文件, 每次讀取一行

  參數 : / 

  返回類型 : 字符串

  備注 : /

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')

print fileoperation.readline(),
print fileoperation.readline(),
print fileoperation.readline()

fileoperation.close()

  運行結果

This is what's in testFile: first line, 
this is what's in testFile: second line
this is what's in testFile: third line

 

2、 讀取文件,文件中存在中文(其實讀取方式相同,只是讀出來為亂碼,我們通過 decode('gb2312') 進行轉碼即可)

  備注 :

        文件名 : ChineseFile.txt

       文件位置 : 保存在所寫的.py文件的同級目錄,附上截圖,便於參考

        備注 : 文件位置可以改變,只需要把文件路徑傳對即可,這里給了截圖是怕有的小伙伴不知道文件該放在哪里,導致運行本程序出錯

       

      文件內容 :        

      

  第一種讀取方式 : read()  

  功能 : 讀取文件全部內容

  參數 : /

  返回類型 : 字符串

  備注 :讀取之后為亂碼,但是我們只要通過 .decode('gb2312') 編碼即可

# -*- coding: UTF-8 -*-

filePath = 'ChineseFile.txt'

fileoperation = open(filePath, 'r')
print fileoperation.read().decode('gb2312')
fileoperation.close()

  運行結果

這是testFile文件中的內容 : 第一行
這是testFile文件中的內容 : 第二行
這是testFile文件中的內容 : 第三行

  PS : 也就是把讀取的內容用.decode('gb2312')編碼輸出而已!!!

  第二種以及第三種讀取方式同上,這里就不再寫了。

 

3、 寫入文件

  備注 : 

        文件名 : writeFile.txt

        文件位置 : 保存在所寫的.py文件的同級目錄,附上截圖,便於參考 

        備注 : 文件位置可以改變,只需要把文件路徑傳對就行了,這里給了截圖是怕有的小伙伴不知道文件該放在哪里,導致運行本程序出錯

        

  第一種方式寫入文件 write(str)    

  功能 : 直接把參數str寫入文件

  參數 : 需要寫入文件的字符串

  返回類型 : None

  PS : 寫入回車用 \n (也就是換行), 寫入中文直接傳遞中文字符串即可

# -*- coding: UTF-8 -*-

filePath = 'writeFile.txt'
writeFileOperation = open(filePath, 'w')
writeString = 'aaa \nbbb'
writeFileOperation.write(writeString)
print '寫入文件成功'
writeFileOperation.close()

  運行結果

寫入文件成功

  PS : 此時,您可以看到 writeFile.txt 文件中已經寫入內容了

  第二種方式寫入文件 writelines(sequence_of_strings)

  功能 : 把 sequence_of_strings 寫入文件

  參數 : 字符串或者任何產生字符串的可迭代對象

  返回類型 : None

  備注 : 我們很容易理解為寫入一行就直接寫入一個回車,其實並沒有,這個函數沒有自動加入回車,因此還得自己加 \n 否則不換行, 寫入中文直接傳遞中文字符串即可

# -*- coding: UTF-8 -*-

filePath = 'writeFile.txt'
writeFileOperation = open(filePath, 'w')
writeFileOperation.writelines('aaa')
writeFileOperation.writelines('bbb')
print '寫入文件成功'
writeFileOperation.close()

  運行結果

寫入文件成功

  PS : 此時我們能看到文件中的內容為aaabbb,沒有換行,這也說明了 writelines() 函數不自動換行

 

4、 打開文件 open()

  功能 : 打開文件,獲取一個操作對象,用於讀寫文件

  參數 : 需要打開的文件以及打開方式

  返回類型 : file

  備注 : 該函數本應該寫在筆記的最前面,但是寫在了最后面。個人原因 : 因為我覺得讀者來看讀寫文件操作,上來就看到一個不是讀取文件的例子,就直接往下划走了,我當時學習時也是這樣, 所以才把這個打開文件放在了最后面。我們都能看出每次操作文件都有 open() , 也就是打開文件,獲取一個文件對象,接下來才可以讀寫文件,比如吃飯前我們得先燒飯,吃完飯得洗碗,所以每次 open() 后我們應該 close() ,例子就不寫了,上面已經用到了,我把打開文件的方式整理一下。

方式 描述
w 打開文件用於寫入內容。如果文件存在,直接打開,寫入內容會覆蓋原文件內容,如果文件不存在,自動新建文件(只讀)
r 打開文件用於讀取內容。(只讀)
a 打開文件用於添加內容,寫入內容在原文件內容之后,不覆蓋原文件內容, 如果文件不存在,自動新建文件
wb 功能同上,只是以二進制格式打開,常用於非文本文檔,如圖片,.mp3 文件等
rb
ab


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM