超轻量级纯python包,用于检查文件是二进制文件还是文本文件。

binaryornot的Python项目详细描述


https://img.shields.io/pypi/v/binaryornot.svg?style=flatDocumentation StatusUpdates

超轻量级纯python包,用于猜测文件是二进制文件还是文本文件, 使用类似于perl的pp fttext的启发式方法,并由@eliben进行分析。

状态

它是有效的,人们在不同的地方使用这个软件包。但它还没有涵盖所有的边缘案件。

代码可以改进。拉请求欢迎!到目前为止,它是基于这些片段的,但这可能会改变:

功能

对这些文件类型进行了测试:

  • 文本:.txt、.css、.json、.svg、.js、.lua、.pl、.rst
  • 二进制文件:.png、.gif、.jpg、.tiff、.bmp、.ds\u store、.eot、.otf、.ttf、.woff、.rgb

对许多编码进行了测试。

为什么?

你可能在想,“我可以用两行代码来写这个?!“

其实没那么容易。这是一篇关于Perl 启发式猜测文件类型有效:http://eli.thegreenplace.net/2011/10/19/perls-guess-if-file-is-text-or-binary-implemented-in-python/

我们就是从这里开始的。随着时间的推移,我们发现了更多的边缘案例 我们的启发变得更复杂了。

另外,这个包还避免了编写和彻底测试 你的代码有各种奇怪的文件类型和编码,跨平台。

生成

Linux(ubuntu 12.04 LTS服务器版64位):

https://img.shields.io/travis/audreyr/binaryornot/master.svg

Windows(Windows Server 2012 R2(x64)):

https://img.shields.io/appveyor/ci/audreyr/binaryornot/master.svg

学分

历史记录

0.4.4(2017-04-13)

  • 通知用户文件I/O问题。谢谢“路人”!

0.4.3(2017-04-13)

0.4.2(2017-04-12)

0.4.0(2015-08-21)

  • 增强了对某些二进制流和utf文本的检测。(10,11)谢谢。
  • 设置AppVeyor以便在Windows上进行连续测试。谢谢@pydanny
  • 更新perl源代码实现的链接。(9)谢谢。
  • 在检查中处理UnicodedeCoderror。(12)谢谢。
  • 添加非常简单的基于假设的测试。(13)谢谢。
  • 使用“设置”确定需求并删除多余的requirements.txt。(14)谢谢。
  • 将文档状态标记添加到readme.rst。(15)谢谢。
  • 在淋巴结特拉维斯做毒性试验。将pypy和python 3.4添加到tox环境中。(16)谢谢。
  • 检测编码时处理lookuperror。(17)谢谢。

0.3.0(2014-05-05)

  • 在源包中包含测试和文档。(6)谢谢。
  • 删除不必要的shebang和可执行位。(8)谢谢。
  • 只生成一次可打印扩展ascii字节的字符串。(7)谢谢。
  • 使要读取的字节数可参数化。(7)谢谢。

0.2.0(2013-09-22)

0.1.1(2013-08-17)

  • 测试在python 2.6、2.7、3.3、pypy下通过。

0.1.0(2013-08-17)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何用java表示这个数学函数的算法   Java/Stream帮助:仅使用streams将嵌套的映射列表转换为映射   使用Selenium连接到数据库时发生java未知主机异常   java如何了解jvm内存使用:“堆内存”和“堆外内存”   java Oracle BI报告导入模板   java如何使用Spring将xml转换为bean?   java线程。join()以保证执行顺序   java从THINGSPEAK到ANDROID应用程序获取JSON数据   使用Java的stanford库中的异常   java正确使用来自其他类文件的方法   如果集合中的元素类型为接口类型,如何填充集合?(爪哇)   记录java。util。记录器创建的文件超过了应有的数量   类Java对象uniq值   尝试调用无法应用于()的方法时出现java错误