簡體   English   中英

如何使用python在可執行輸出中搜索文本字符串?

[英]How to search for text string in executable output with python?

我正在嘗試創建一個 python 腳本來為我自動更新程序。 當我運行 program.exe --help 時,它會給出一個很長的輸出,並且在輸出中是一個值為"Version: XXX"的字符串如何制作一個腳本來運行命令並將版本號與可執行文件的輸出隔離開來?

我應該提到我嘗試了以下方法:

import re 
import subprocess

regex = r'Version: ([\d\.]+)'

match = re.search(regex, subprocess.run(["program.exe", "--help"])) 

print((match.group(0)))  

並得到錯誤:

Traceback (most recent call last):
  File "run.py", line 6, in <module>
    match = re.search(regex, subprocess.run(["program.exe", "--help"]))
  File "C:\Python37\lib\re.py", line 183, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object

這樣的事情應該工作:

re.search(r'Version: ([\d\.]+)', subprocess.check_output(['program.exe', '--help']).decode()).group(1)

暫無
暫無

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

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