小李飛刀:醉臥沙場君莫笑,python你仍是等等我

前面的一些碎碎念

兩天的耽擱,思考了下,雖然須要全面基礎的學習,可是重點仍是應該放在實戰上。
因此後續要速速的推倒這個教程了,用一些數據來實行一些分析:)編程

認真學習的分割線

打打打打雞血!!!
喝了一點點梅子酒,讓個人創造力更加豐豐豐豐富!app

IO編程

文件讀寫

讀讀讀

當我想讀文件的時候,我能夠作下面的動做。學習

  1. 偷偷的先open()個文件,記得傳入文件名和標誌符號
  2. 而後再小小的read()一下
  3. 最後記得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()的時候把標誌符改成wblog

f = open('/Users/michael/test.txt', 'w')
f.write('hello world')
f.close()

能夠傳入wb來寫二進制文件。
寫特定編碼的文件的時候,傳入encoding參數。
爲了避免而後面寫入的文件覆蓋前面的,用a(append)模式寫入便可,會追加到文件末尾。教程

StringIO和BytesIO

StringIO

StringIO顧名思義就是在內存中讀寫str。
要把str寫入StringIO,首先要先建立一個StringIO,而後寫入~圖片

clipboard.png

getvalue來獲取寫入後的str。
若是想讀取StringIO,也能夠用str初始化一個StringIO,用readline()讀取。ip

BytesIO

這位朋友是用來操做二進制文件的,在內存中讀寫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

相關文章
相關標籤/搜索