Python:检测二进制文件中的所有字符串?

标签 python

strings是一个 GNU/Linux 应用程序,用于打印文件中可打印字符串。

有什么方法可以做 strings 所做的事情,但是在 Python 中吗?

在我的情况下,调用strings并获取输出不是一个选项。

最佳答案

如果你不关心输出的内容,只要简单地忽略所有解码错误就很容易实现:

在 python2 中:

with open('file') as fd:
    print fd.read().decode('ascii', errors='ignore')

在 python3 中:

import codecs
with open('file') as fd:
    print(codecs.decode(fd.read(), 'ascii', errors='ignore'))

无论如何,errors='ignore'都会忽略解码过程中的所有错误。

进一步引用:https://docs.python.org/2/library/codecs.html

python3:https://docs.python.org/3.5/library/codecs.html

关于Python:检测二进制文件中的所有字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31947756/

相关文章:

python - 使用 pandas 合并索引

python - 无法将 scikit-learn 的 DecisionTreeClassifier 的输出保存到 CSV

python - 在 knn 算法中计算距离而不是欧氏距离的替代有效方法

python - 字符串格式为 base64 到 base64 对象

python - Tensorflow 的计算时间在非常简单的 "for loop"中逐渐变慢

python - 使用字符串模板格式时防止类型强制

Python for 循环操作列表并删除曾经使用过的元素

python - 从源代码构建 python,无需为二进制文件创建符号链接(symbolic link)

python - kmodes VS one-hot encoding + kmeans 用于分类数据?

python - 通过配置文件设置 python 记录器配置