gpt4 book ai didi

python - 检查一个字节是否可以 ascii 打印

转载 作者:行者123 更新时间:2023-12-01 03:19:26 25 4
gpt4 key购买 nike

我正在使用二进制设置读取文件:

with open(filename, 'rb') as f:

然后我将整个文件读入变量:

x = f.read()

我的问题是我想检查 x 中的字节是否可 ascii 打印。所以我想比较字节,看看它们是否在十进制表示的 32-128 范围内。执行此操作最简单的方法是什么?

自从我之前在项目的其他地方将字节转换为十六进制以来,我一直在尝试使用 ord() 函数和各种十六进制函数,但似乎没有任何效果。

我是Python新手,但有其他语言的经验。有人能指出我正确的方向吗?谢谢。

最佳答案

您可以根据string.printable检查每个字节。

>>> import string
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

printable_chars = bytes(string.printable, 'ascii')
with open(filename, 'rb') as f:
printable = all(char in printable_chars for char in f.read())

为了提高效率,集合与字符串查找的 O(1) 与 O(n) 相比,请使用集合:

printable_chars = set(bytes(string.printable, 'ascii'))
with open(filename, 'rb') as f:
printable = all(char in printable_chars for char in f.read())

关于python - 检查一个字节是否可以 ascii 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42064158/

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