파일이 가득 찬 폴더가 있고 그 안에 일부 문자열을 검색하고 싶습니다. 문제는 일부 파일이 zip, exe, ogg 등일 수 있다는 것입니다. txt, PHP 등의 파일 만 열어서 검색하므로 어떤 파일인지 어떻게 확인할 수 있습니까? 파일 확장명을 신뢰할 수 없습니다.파일에 일반 텍스트가 포함되어 있는지 확인하는 방법은 무엇입니까?
답변
Python interface ~ libmagic을 사용하여 파일 형식을 식별 할 수 있습니다.
>>> import magic
>>> f = magic.Magic(mime=True)
>>> f.from_file('testdata/test.txt')
'text/plain'
자세한 내용은 repo을 참조하십시오.
Linux를 사용중인 경우 file
명령 줄 도구의 출력을 구문 분석 할 수 있습니다.
사용 파이썬의 mimetypes
라이브러리 :
import mimetypes
if mimetypes.guess_type('full path to document here')[0] == 'text/plain':
# file is plaintext
mimetypes는 파일의 filename.ext를 사용하여 파일 내용을 결정합니다. 파일 이름을 변경하여 위장하는 것은 정말 쉽습니다. "file"명령을 사용하는 * nix 시스템에서는 파일 자체를보고 내용이 어떻게 보이는지를 확인하기 때문에 더 안전합니다. "파일"도 스푸핑 될 수 있지만 적어도 내용을 보게됩니다. 아래 Sinan에 언급 된 python-magic과 같은 것이 더 안전합니다. 자세한 정보는 * nix에서 "man file"과 "man magic"을 참조하십시오. –
OP가 특별히 파일 확장자에 의존 할 수 없다고 말한 다음 파일 확장자 만 보이는 정확한 답변을 표시한다는 것은 흥미 롭습니다. –
이런 식으로 뭔가를 시도 : 파일이 바이너리 인 경우
is_binay_file('<your file path name>')
이 True를 반환합니다
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
이 같은 방법을 사용 텍스트라면 False, 필요하다면 Fx로 바꾸면됩니다. 함수를 만든다 is_text_file
- 나는 너에게 맡긴다.
- 1. Tpicture에 Jpeg가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 2. 로드 된 웹 페이지에 특정 텍스트가 포함되어 있는지 확인하십시오.
- 3. URL에 텍스트가 포함되어 있는지 확인하십시오 (자바 스크립트)
- 4. MaskedEdit 컨트롤에 텍스트가 포함되어 있는지 확인하십시오.
- 5. Firefox의 표 셀에 텍스트가 넘쳐 흐르고 있는지 확인하는 방법은 무엇입니까?
- 6. 문자열에 숫자가 포함되어 있는지 감지하는 방법은 무엇입니까?
- 7. Java 클래스에 JUnit4 테스트가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 8. 클래스에 하위 클래스/유형이 포함되어 있는지 확인하는 방법은 무엇입니까?
- 9. 배열에 객체가 포함되어 있는지 확인하는 더 나은 방법은 무엇입니까?
- 10. PHP : 문자열에 특수 문자가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 11. NSArray에 특정 클래스의 객체가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 12. 컬렉션에 특정 유형의 인스턴스가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 13. 문자열에 영문자 (A-Z)가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 14. 지도에 스칼라에 빈 문자열 값이 포함되어 있는지 확인하는 방법은 무엇입니까?
- 15. bitArray에 true 또는 false 값이 포함되어 있는지 확인하는 방법은 무엇입니까?
- 16. ASP.NET 컨트롤 속성에 데이터 바인딩식이 포함되어 있는지 확인하는 방법은 무엇입니까?
- 17. php : 문자열에 나열된 키워드가 포함되어 있는지 확인하는 방법은 무엇입니까?
- 18. 입력 텍스트 필드에 공백 만 포함되어 있는지 확인하는 방법은 무엇입니까?
- 19. 링크 문자열에 단어가 포함되어 있는지 확인하는 방법은 무엇입니까? (PHP)
- 20. NSMutableArray에 값 (null)이 포함되어 있는지 확인하는 방법은 무엇입니까?
- 21. 이미지에 반투명 픽셀이 포함되어 있는지 확인하는 가장 빠른 방법은 무엇입니까?
- 22. 현지화가 있는지 확인하는 방법은 무엇입니까?
- 23. iframe에 특정 문장이 있는지 확인하는 방법은 무엇입니까?
- 24. 웹 사이트에 플래시가 포함되어 있는지 확인하는 방법
- 25. NSString - 따옴표가 포함되어 있는지 확인하는 방법
- 26. UITextField에 특정 문자가 포함되어 있는지 확인하는 방법
- 27. 다른 프로세스에서 파일에 액세스하고 있는지 확인하는 방법은 무엇입니까?
- 28. chm 파일에 서브 파일이 있는지 확인하는 방법은 무엇입니까?
- 29. .net : 구성 파일에 appSetting이 있는지 확인하는 가장 좋은 방법은 무엇입니까?
- 30. PHP - 파일에 ASCII 만 포함되어 있는지 확인하십시오.
그냥'file'을 호출 할 수 있니? 그것은 많은 유형을 다룹니다. http://linux.die.net/man/1/file –