iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)系列 第 5

[D5] 資料處理:檔案流

Python語言的環境
Anaconda:https://www.anaconda.com/distribution/
VsCode:https://code.visualstudio.com/download
代碼建議用python3,python2跟3語法和結構完全不同

----------------------------------------------------------------------------------------------------------------

檔案流 vs 資料流

資料流畢竟只是形容資料怎麼樣處理(搭配流程圖),但無法實際在程式表達出來。而實際在程式裡處理I/O資料的方法或程式碼 就可稱為檔案流

  • stdin , stdout是啥?
    有寫c語言的朋友對std應該不陌生,std就是標準(standard)的簡寫,何謂標準串流?<wiki解釋>;例如在一個系統環境上的軟體 如果軟體有輸出輸入的textbox。那資料是如何處理並且顯示呢? 那就是透過std的處理把資料放到硬體上,再丟出來輸出
---

在std的世界觀內:
write == 就是寫入
read == 讀取寫入的內容(無法寫入)
print()也是一種stdout(標準輸出),把打進去的內容輸出(顯示)

#等價程式 (S == P)
import sys
S = sys.stdout.write('hello'+'\n') #指標在下一行
P = print('hello')

而stdin也很直觀,就是標準輸入 像python 的input() 就是個標準輸入

#等價程式 (A == B)
import sys
A = input("textbox")
B = sys.stdin.readline()[:-1] #不換行

你可能會想 既然python內建函式那麼方便 為何還需要std? 因為有些軟體會有按鈕 , 提示框… 都屬物件的一種,而 input() 本身也有方法 屬性,如果只想給個方法(如:sys.stdin.readline)單純輸入,使用stdio 比較推薦 重要的是能做跨文件或環境的I/O

  • stderr (標準錯誤輸出)
    這個可不是單指debug(偵錯或除錯)喔 , 而是一種輸出錯誤內容的方法

debug(意指...)
把程式輸入(stdin)
輸出狀態(stdout)
有錯誤輸出錯誤(stderr)


stdio之間的關係:
https://ithelp.ithome.com.tw/upload/images/20190909/20117399k2m3pLL6Na.png
與資料流關係:
https://ithelp.ithome.com.tw/upload/images/20190909/20117399tSZhXnjAcE.png
發現了嗎 就連簡單的讀取都會有輸入與輸出 因為資料流就只描述資料是怎麼處理的 而處理的細節及演算法就交給檔案流吧~


上一篇
[D4] 資料處理:資料流
下一篇
[D6] 資料處理:檔案流2
系列文
從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言