gpt4 book ai didi

python - 错误 :cannot use a string pattern on a bytes-like object

转载 作者:行者123 更新时间:2023-12-04 02:36:10 35 4
gpt4 key购买 nike

我正在使用 Python RegEx 显示连接到计算机的所有互联网无线配置文件。出现错误 (TypeError: cannot use a string pattern on a bytes-like object)在我的倒数第二行请任何人帮助识别我的错误。谢谢

我的程序

import subprocess,re
command = "netsh wlan show profile"
output = subprocess.check_output(command, shell=True)
network_names = re.search("(Profile\s*:\s)(.*)", output)
print(network_names.group(0))

………………………………………………………………………………………………………………………………………………………… ...

错误
line 8, in <module>


return _compile(pattern, flags).search(string)


TypeError: cannot use a string pattern on a bytes-like object

最佳答案

Python 3 区分“bytes”和“string”类型;这对于 Unicode 字符串尤其重要,其中每个字符可能超过一个字节,具体取决于字符和编码。

正则表达式可以用于任何一个,但它必须是一致的——在字节中搜索字节,或在字符串中搜索字符串。

根据您的需要,有两种解决方案:

  • 解码output在搜索之前变量;例如,使用:output_text = output.decode('utf-8')
    这取决于您使用的编码; UTF-8 是当今最常见的。

    匹配的组将是一个字符串。
  • 通过添加 b 来搜索字节正则表达式的前缀。正则表达式也应该使用 r前缀,所以它变成:re.search(br"(Profile\s*:\s)(.*)", output)
    匹配的组将是一个字节对象。
  • 关于python - 错误 :cannot use a string pattern on a bytes-like object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61720217/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com