我有一个脚本来拉入各种gzip和bz2压缩文件。在我将它们拉入之后,我正在寻找一个脚本来编写该文件,并根据其中包含的文件类型添加一个扩展。Python来检查gzip文件是xml还是csv
的文件格式,我大约关注包括XML,CSV和TXT文件,虽然我不是真正关心的CSV和TXT文件之间划定(添加TXT扩展名是不行了两者)。
我一直在使用python-magic库来确定使用哪个解压缩库(bz2 vs gzip),但想知道确定文件类型的最简单方法。使用python-magic我得到:
>>> 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等
不够公平,我并没有考虑过你的很明显的反应给一个有效的CSV/XML。我的原始问题有些不完整,我会编辑我的问题,以更好地表明我在寻找什么 – 2012-01-31 18:02:58
@SamJohnson更新了解决方案,该解决方案检查输入是否为有效的XML,然后检查它是否为有效的CSV。 – phihag 2012-01-31 18:26:09
csv与文本的解决方案似乎不适用于我测试的几个文件。相反,我使用的解决方案[这里](http://stackoverflow.com/questions/2984888/check-if-file-has-a-csv-format-with-python),虽然不是100%的溶剂,应该小心几乎所有情况下 – 2012-01-31 20:55:36