第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

無法將特殊字符傳遞給python中的子進(jìn)程

無法將特殊字符傳遞給python中的子進(jìn)程

MMTTMM 2023-02-22 15:10:21
我有這個(gè)命令可以獲取從 Unix shell 返回的外部 IP 地址,所以我可以在我的服務(wù)器中使用它:ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'在我的 Mac 上,終端返回:192.168.1.3我如何在 python 腳本中輸出這個(gè)?我努力了:import subprocesscommand = ['ifconfig', '|', 'sed', '-En', 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p']p = subprocess.Popen(command, stdout=subprocess.PIPE)text = p.stdout.read()retcode = p.wait()我得到錯(cuò)誤說ifconfig: 界面 | 不存在提前致謝!
查看完整描述

2 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

您的 shell 命令正在調(diào)用兩個(gè)命令, 的輸出ifconfig用作sed. 您可以使用 subprocess 來模擬它,但sed調(diào)用只是進(jìn)行一些文本操作,因此更簡潔的方法是在該步驟中使用 Python。例如:


import re

import subprocess


pattern = r'inet (?:addr:)?(?!127\.0\.0\.1)((?:\d+\.){3}\d+)'


p = subprocess.Popen(['ifconfig'], stdout=subprocess.PIPE)

text = re.search(pattern, p.stdout.read()).group(1)

retcode = p.wait()


查看完整回答
反對 回復(fù) 2023-02-22
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

您正在嘗試調(diào)用 2 個(gè) shell 命令,ifconfig并且sed,沒關(guān)系。但是,這些是 shell 命令,在調(diào)用subprocess.Poen.


使用communictae方法,最好用在這里。并將命令作為字符串而不是列表發(fā)送。


import subprocess


command = ' '.join(['ifconfig', '|', 'sed', '-En', 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'])

p = subprocess.Popen(command, stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)

stdoutdata, stderrdata = p.communicate()  #this is blocking

for line in stdoutdata:

    #do some thing with line

Popen.communicate(input=None)


與進(jìn)程交互:將數(shù)據(jù)發(fā)送到標(biāo)準(zhǔn)輸入。從 stdout 和 stderr 讀取數(shù)據(jù),直到到達(dá)文件末尾。等待進(jìn)程終止??蛇x的輸入?yún)?shù)應(yīng)該是一個(gè)要發(fā)送給子進(jìn)程的字符串,如果沒有數(shù)據(jù)應(yīng)該發(fā)送給子進(jìn)程,則為 None。


查看完整回答
反對 回復(fù) 2023-02-22
  • 2 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號