다양한 gzip 및 bz2 압축 파일을 가져 오는 스크립트가 있습니다. 파일을 가져온 후에는 파일을 쓰고 그 안에 포함 된 파일 형식에 따라 확장명을 추가하는 스크립트를 작성하려고합니다.파이썬이 gzipped 파일이 xml인지 또는 csv인지 확인합니다.
내가 우려하는 파일 형식에는 csv와 txt 파일을 구분하는 것에 대해서는별로 신경 쓰지 않지만 (txt 확장자를 추가하는 것이 좋습니다) xml, csv 및 txt 파일이 포함됩니다.
필자는 python-magic 라이브러리를 사용하여 압축 풀기 라이브러리 (bz2 대 gzip)를 결정했지만 파일 형식을 결정하는 가장 쉬운 방법을 알고 싶습니다. 파이썬 매직을 사용하여 :
>>> ftype = m.from_file("xml_test.xml")
>>> ftype
'ASCII text'
>>> ftype = m.from_file("csv_test.csv")
>>> ftype
'ASCII text'
나의 현재 계획은 각 파일의 첫 줄을 읽고 그걸 바탕으로 결정을 내리는 것입니다. 더 쉬운 방법이 있습니까?
@ phihag의 대답에 대한 답변으로 저조한 모습을 보였습니다. 내가 원하는 것은 파일이 유효한 XML인지 먼저 확인한 다음 유효한 CSV인지 확인한 다음 마지막으로 확인하는 것입니다. 이 유효 CSV가 아니라 유효한 일반 텍스트가 응답으로
참고가 돌려 주어 :이 부분 대답 here했지만이 솔루션은 당신이 할 수없는 CSV 검사가 아닌 XML, TXT 등
박람회 : 당신이 성능에서 인 경우에, 단순히 sax 또는 csv.reader의 항목을 무시 예를 들어 실제 문서 트리의 건설을 건너 유효한 CSV/XML 내 원래의 질문은 다소 불완전했고, 내 질문을 편집하여 원하는 내용을 더 잘 나타내도록했습니다. –
@SamJohnson 입력이 유효한 XML인지 여부와 유효한 CSV인지 여부를 확인하는 솔루션으로 업데이트되었습니다. – phihag
CSV와 텍스트의 솔루션이 테스트 한 일부 파일에서 작동하지 않는 것 같습니다. 대신 나는 100 % 용매가 아니지만주의를 기울여야하는 해결책을 [여기] (http://stackoverflow.com/questions/2984888/check-if-file-has-a-csv-format-with-python) 사용했다. 거의 모든 경우의 –