我正在尝试使用 python CSV 阅读器解析“伪 CSV”文件,并且对如何添加一些额外的逻辑有一些疑问。我将其称为“伪 CSV”文件的原因是,在实际 CSV 数据开始之前,输入文件中的某些行将包含文本(30-40 个字符)。我正在尝试找出删除此文本的最佳方法。
目前,我找到了 3 个删除上述文本的选项:
从 Python 中,调用 grep 和 sed 并将输出通过管道传输到一个临时文件,然后可以将其提供给 csv 阅读器(呃,我想避免这个选项)
创建一个 CSV 方言来删除不需要的文本(这个选项感觉不对)
扩展 File 对象,实现 next() 函数以根据需要删除不需要的文本。
我无法控制输入文件的生成方式,因此它不是修改生成的选项。
这是我意识到输入文件问题时的相关代码。
with open('myFile', 'r') as csvfile:
theReader = csv.reader(csvfile)
for row in theReader:
# my logic here
如果我使用上面的选项 3,则解决方案非常简单,但是我将无法合并with open()
语法。
所以,这是我的问题(实际上是 2 个):选项 3 是解决这个问题的最佳方法吗?如果是这样,我怎样才能将它与with open()
语法结合起来?
编辑:忘了提到我在 Linux 上使用 Python 2.7。