如何检查文件是否包含纯文本?

时间:2010-03-18 17:56:19

标签: python

我有一个文件夹,我想在其中搜索一些字符串。问题是有些文件可能是zip,exe,ogg等。 我可以检查一下它是什么类型的文件所以我只打开并搜索txt,PHP等文件。 我不能依赖文件扩展名。

4 个答案:

答案 0 :(得分:6)

使用Python的mimetypes库:

import mimetypes
if mimetypes.guess_type('full path to document here')[0] == 'text/plain':
    # file is plaintext

答案 1 :(得分:4)

您可以使用Python interfacelibmagic来识别文件格式。

>>> import magic
>>> f = magic.Magic(mime=True)
>>> f.from_file('testdata/test.txt')
'text/plain'

有关更多示例,请参阅repo

答案 2 :(得分:1)

尝试这样的事情:

('body,html').animate({scrollTop: $("#"+anyQuestionId).offset().top}, 1000);

使用这样的方法:

procedure OnMediaPlayerEvent(EventCode, Param1, Param2: Integer);
begin
  if EventCode = EC_COMPLETE then
    VideoForm.Close; { not close, start again, and again.... }
end;

如果文件是二进制类型,则返回True;如果是文本,则返回False - 应该很容易将其转换为反映您的需求,fx。制作一个函数def is_binay_file(filepathname): textchars = bytearray([7,8,9,10,12,13,27]) + bytearray(range(0x20, 0x7f)) + bytearray(range(0x80, 0x100)) is_binary_string = lambda bytes: bool(bytes.translate(None, textchars)) if is_binary_string(open(filepathname, 'rb').read(1024)): return True else: return False - 我把它留给你

答案 3 :(得分:-1)

如果您使用的是linux,则可以解析file命令行工具的输出。