Python 3.5 讀寫文件

在Python中讀寫文件不需要像Java或.Net一樣要另外導入io"包",可直接使用open方法

open() 返回一個文件對象,並且通常使用兩個參數:open(filename, mode)

>>>f = open('youfile', 'w')

第一個參數:包含文件名的字符串

第二個參數:包含怎麼使用這個文件的描述

有以下幾種模式:

r:只讀(默認)

w:只寫(不存在則創建,存在則先清空)

x:創建新文件並打開設置可寫權限

a:打開文件並設置可寫權限,向文件最後追加內容

b:以二進制讀取文件,以字節對象讀寫數據,用於操作不包含文本的文件

t:文本模式(默認)

+:爲更新而打開一個硬盤文件(可讀寫)

r+:可讀可寫


一般情況下,文件是以文本模式被打開,這意味着,你可以指定編碼的對文件進行讀寫,如果沒有指定就默認使用平臺編碼(具體查看open())


在文本模式中,讀取文件被默認的轉換到平臺指定的換行符\n(Unix:\n,Windows:\r\n)

在寫模式中,\n被轉換爲平臺指定的換行符


對於文本文件修改還好,但是像JPEG或EXE文件會被破壞,所以在使用二進制模式讀寫這類文件時一定要小心。


在讀寫文件時要考慮很多意外的情況,如,沒有找到要打開的文件就會拋異常(r模式):

>>> open('f.txt', 'r')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 2] No such file or directory: 'f.txt'

所以在讀文件時要對異常進行處理:

try:
    f = open('myfile.txt')
    s = f.readline()
    i = int(s.strip())
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("Could not convert data to an integer.")
except:
    print("Unexpected error:", sys.exc_info()[0])
    raise



本文參考官網.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章