標准輸入stdin


介紹

在算法實際工作中,我們的輸入數據往往是不確定的,而且是不管更新的,比如今天你的輸入是某個平台的數據,明天可能是另一個平台得到的數據,或者說你需要一個腳本來解決數據更新的問題又不需要重新改寫腳本,那么把輸入數據定義在腳本程序外會是一個好的選擇,那就是stdin(標准輸入)

用法實例

使用stdin需要模塊sys,這個是Python已經有的,不需要按照。下面我們寫一個簡單的腳本test.py來實驗一下,

import sys

print('*****start*****')

for line in sys.stdin:
    #這里可以按行處理數據
    print(line)

print('*****completed*****')

然后我們隨便新建一份數據,

vi data.txt

然后手動寫入三行數據:
1 KFC
2 Burger king
3 McDonald

保存退出,然后輸入到腳本test.py

cat data.txt | python test.py
# *****start*****
# 1    KFC
# 2    Burger king
# 3    McDonald
# *****completed*****

作為輸入控制,你還可以只輸入一部分數據,比我我只要第一條數據

head -1 data.txt | python test.py
# *****start*****
# 1    KFC
# *****completed*****

這樣做也可以很靈活得控制輸出,上面的例子是直接輸出到屏幕顯示,你也可以輸出到某個文件保存,

cat data.txt | python test.py > output.txt

與input區別

input()方法和stdin()類似,不同的是input()括號內可以直接填寫說明文字,然后sys.stdin.readlines( )會將標准輸入全部獲取,包括末尾的'\n',因此用len計算長度時是把換行符'\n'算進去了的,但是input( )獲取輸入時返回的結果是不包含末尾的換行符'\n'的。


免責聲明!

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



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