兩天的耽擱,思考了下,雖然須要全面基礎的學習,可是重點仍是應該放在實戰上。
因此後續要速速的推倒這個教程了,用一些數據來實行一些分析:)編程
打打打打雞血!!!
喝了一點點梅子酒,讓個人創造力更加豐豐豐豐富!app
當我想讀文件的時候,我能夠作下面的動做。學習
open()
個文件,記得傳入文件名和標誌符號read()
一下close()
f = open('/Users/michael/test.txt', 'r') f.read() f.close()
當文件不存在的時候是會報錯的喔,因此咱們能夠用try...finally來實現準確的關閉文件。編碼
try: f = open('/path/to/file', 'r') print(f.read()) finally: if f: f.close()
更簡潔的版本是spa
with open('/path/to/file', 'r') as f: print(f.read())
若是文件很小,read()一次性讀取最方便;若是不能肯定文件大小,反覆調用read(size)比較保險;若是是配置文件,調用readlines()最方便。
當讀入的文件爲二進制文件或圖片等其餘,用rb
模式打開文件便可。
當讀入的文件不是UTF-8編碼的時候,要傳入encoding
參數。code
當我想寫文件的時候,我在open()
的時候把標誌符改成w
blog
f = open('/Users/michael/test.txt', 'w') f.write('hello world') f.close()
能夠傳入wb
來寫二進制文件。
寫特定編碼的文件的時候,傳入encoding
參數。
爲了避免而後面寫入的文件覆蓋前面的,用a
(append)模式寫入便可,會追加到文件末尾。教程
StringIO顧名思義就是在內存中讀寫str。
要把str寫入StringIO,首先要先建立一個StringIO,而後寫入~圖片
用getvalue
來獲取寫入後的str。
若是想讀取StringIO,也能夠用str初始化一個StringIO,用readline()
讀取。ip
這位朋友是用來操做二進制文件的,在內存中讀寫bytes。
>>> from io import BytesIO >>> f = BytesIO() >>> f.write('中文'.encode('utf-8')) 6 >>> print(f.getvalue()) b'\xe4\xb8\xad\xe6\x96\x87'
而後同StringIO同樣,也能夠用一個bytes初始化BytesIO,而後像文件同樣讀取。
-----寫於2019-01-09