我正在開發一個項目,以在本地項目上運行PEP8樣式檢查。我試圖使用子進程方法,並且能夠獲得提示的生成終端輸出以改進樣式並將其保存爲字符串。子流程命令輸出丟失
我的代碼來生成PEP8風格是如下:
def run_pep8_style(target):
pep_tips = subprocess.Popen("python pep8.py --ignore=E111,E501 --filename=*.py " + target, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
tips = pep_tips.communicate()[0]
print "Style: "
print tips
不過,我試圖生成使用相同的方法子和存儲計數,但我成功做的。終端顯示輸出,但不會捕獲到字符串變量中。
def run_pep8_count(target):
pep_tips = subprocess.Popen("python pep8.py --ignore=E111,E501 --count -qq --filename=*.py " + target, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
tips = pep_tips.communicate()[0]
print "Count: "
print tips
奇怪的是,我能夠從終端文本樣式列表中存儲到一個字符串變量,但是當我試圖捕捉PEP8計數返回None。計數的終端輸出是否與樣式列表不同?我是Python編程的新手,所以任何幫助,將不勝感激。謝謝。
從未使用過pep8.py腳本您正在使用,但檢查它打印到標準輸出而不是標準錯誤。另外,也許你必須等到該過程結束後才能刷新輸出,並且可以讀取它。 – deStrangis