亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將子進程的輸出存儲在字符串中

將子進程的輸出存儲在字符串中

LEATH 2019-06-27 17:05:30
將子進程的輸出存儲在字符串中我試圖用Python進行系統調用,并將輸出存儲到Python程序中可以操作的字符串中。#!/usr/bin/pythonimport subprocess p2 = subprocess.Popen("ntpq -p")我嘗試了一些東西,包括這里的一些建議:檢索Subprocess.Call()的輸出但沒有任何運氣。
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

在Python2.7或Python3中

而不是制造一個Popen對象時,可以使用subprocess.check_output()功能若要將命令的輸出存儲在字符串中,請執行以下操作:

from subprocess import check_output
out = check_output(["ntpq", "-p"])

在Python2.4-2.6中

使用communicate方法。

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)out, err = p.communicate()

out是你想要的。

關于其他答案的重要注意事項

注意我是如何傳遞命令的。這個"ntpq -p"例子引發了另一件事。自Popen不調用shell,您將使用命令和選項的列表-["ntpq", "-p"].


查看完整回答
反對 回復 2019-06-27
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

這對于我重定向stdout(stderr可以類似地處理)起了作用:

from subprocess import Popen, PIPE
pipe = Popen(path, stdout=PIPE)text = pipe.communicate()[0]

如果它對你不起作用,請具體說明你遇到的問題。


查看完整回答
反對 回復 2019-06-27
  • 3 回答
  • 0 關注
  • 615 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號