簡體   English   中英

Python re.findall 預期字符串

[英]Python re.findall expected string

我想用re.findall在我的字符串中搜索一個單詞。 代碼如下:

def check_status():
   p1 = subprocess.run(["screen", "-ls"], shell=False)
   p2 = re.findall("myscreen", p1)
   print(p2)

p1的返回如下所示:

There are screens on:
    2420454.myscreen        (12/25/2021 01:15:17 PM)        (Detached)
    6066.bot                (12/14/2021 07:11:52 PM)        (Detached)

如果我執行此 function,我會收到以下錯誤消息:

File "/usr/lib/python3.10/re.py", line 240, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object

我已經搜索過這個問題,但一無所獲。

我正在使用 Python 3.10

subprocess.run返回CompletedProcess object。 您想將capture_output=True添加到關鍵字 arguments,並將正則表達式應用於其stdout成員:

p2 = re.findall('myprocess', p1.stdout)

..當然。 您不需要正則表達式來查找 static 字符串:

p2 = 'myprocess' in p1.stdout

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM