作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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')
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/
我是一名优秀的程序员,十分优秀!