使用csv.reader在Python中读取同一文件中具有两个不同分隔符的文件

时间:2014-04-11 09:36:02

标签: python mysql csv

我想将一个文件从MySQL导入到python,但同一行中有两种类型的分隔符,位于同一行。

例如:

FIELDA_FIELDB_FIELDC; FILEDD; FIELDE; FIELDF

我可以与_;分开,但无法找到如何做到这两点。

我试过了

csv_data = csv.reader(csvfile, delimiter=';' and '_')
csv_data = csv.reader(csvfile, delimiter=';' or'_')

我也尝试过使用csv.sniffer。

但每次只使用一个分隔符。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

CSV文件只能有一个分隔符,因此您的方法无法正常工作。如果你无法修复损坏的文件,你可以分两步读取它(假设Python 2):

csv_data = []
with open("file.csv", "rb") as csvfile:
    reader = csv.reader(csvfile, delimiter=";")
    for row in reader:
        new = []
        for item in row:
            new.extend(item.split("_"))
        csv_data.append(new)

对于转义_分隔符等问题,该解决方案当然是天真的,但它可能会按照您的意图运行。

相关问题