我有一些文件,而不扩展。 我想联想扩展到他们。 对于我写了一个Python程序文件中读取数据。 我的疑问是我怎么能确定其类型没有扩展名,而无需使用第三方工具。
我只能确定一个PDF,DOC和文本文件。 文件的其他类型是不可能的。
我的服务器是百分之OS
我有一些文件,而不扩展。 我想联想扩展到他们。 对于我写了一个Python程序文件中读取数据。 我的疑问是我怎么能确定其类型没有扩展名,而无需使用第三方工具。
我只能确定一个PDF,DOC和文本文件。 文件的其他类型是不可能的。
我的服务器是百分之OS
你可以读取文件的前几个字节,并寻找一个“幻数”。 在维基百科页面上的神奇数字表明,PDF文件开始ASCII %PDF
和DOC文件开始六角D0 CF 11 E0。
识别文本文件将会在一般情况下非常艰难,因为很多标准的幻数实际上是二进制的文件的开头ASCII文本。 对于你的情况,如果你能保证你不会得到任何东西,但PDF,DOC或TXT,你很可能逃脱被检查的PDF和DOC幻数,然后假设它是文本,如果它不是任那些。
你有没有说什么操作系统上的。 如果其在* nix基于一个那么有一个Python包装(即使用ctypes的)围绕libmagic它使用相同的底层机制的file
命令,它可以通过检查内容识别文件,而不扩展。 或者只是检查libmagic如何使用文件定义,只是制定出如何识别左侧必须是文本;-)和扩展现有代码的两种主要类型的文件(DOC,PDF)和一切。
PDF文档与PDF%版本号开始,但他们中的一些可能被完全压缩。