我正在嘗試構建一個python腳本,我每天運行該腳本以便從前兩天獲取OpenDNS的那些天DNS請求。這是我迄今爲止所擁有的。如何在subprocess.call()後輸入密碼
import subprocess
import datetime
two = datetime.date.today() - datetime.timedelta(2)
one = datetime.date.today() - datetime.timedelta(1)
path = '~/Downloads/opendns-fetchstats-master'
dateRange = str(two) + ' ' + str(one)
dateRange2 = str(two) + 'to' +str(one)
username = '[email protected]'
password = 'password'
outputFile = dateRange2 + '.csv'
print dateRange2
subprocess.call(
['cd ' + str(path) + ' && echo '+ str(password) + ' | bash fetchstats ' +
str(username) + ' home ' + str(dateRange) + ' > ' + str(outputFile)],
shell=True
)
的問題是,它運行後:
bash fetchstats ' + str(username) + ' <network_id> ' + str(dateRange) + ' > ' + str(outputFile)
它然後要求輸入密碼的帳戶。我無法弄清楚如何輸入密碼。我在使用
echo password |
作品部分的嘗試,但返回下面的錯誤,並且進程結束全部的數據可以下載之前
的stty: 標準輸入:用於設備 stty的不適當的ioctl:標準輸入:不適當的設備ioctl
有沒有一種方法,我可以寫這個,所以進程在提示時輸入密碼,然後等待下載在結束過程之前是否完成?
如果你要回答自己的問題,至少也要標記它,這樣這個問題就不會出現在未答覆的列表中 – 2014-11-09 12:27:18
我不能將它標記爲已回答,直到2天過去。 – Cole 2014-11-09 19:09:08
啊對,我忘記了那2天的事情 – 2014-11-09 22:53:31