用于导入具有固定长度字段的逗号分隔csv的Python脚本

用于导入具有固定长度字段的逗号分隔csv的Python脚本,python,csv,Python,Csv,我有一个带有逗号分隔字段的.csv文件。我从第三方收到此文件,内容无法更改。我需要将文件导入数据库,但在一些“逗号”分隔的字段中有逗号。逗号分隔的字段也是固定长度的-当我在functioninsert\u line\u csv中按照下面的行打印字段时,它们以固定长度间隔 我需要一种有效的方法来收集字段,字段中可能包含逗号。我希望把这两种方法结合起来。不确定这是否有效 我使用的是Python3——我愿意使用任何库来提高工作效率和简化工作 目前我有以下几点: with open(FileName,

我有一个带有逗号分隔字段的.csv文件。我从第三方收到此文件,内容无法更改。我需要将文件导入数据库,但在一些“逗号”分隔的字段中有逗号。逗号分隔的字段也是固定长度的-当我在functioninsert\u line\u csv中按照下面的行打印字段时,它们以固定长度间隔

我需要一种有效的方法来收集字段,字段中可能包含逗号。我希望把这两种方法结合起来。不确定这是否有效

我使用的是Python3——我愿意使用任何库来提高工作效率和简化工作

目前我有以下几点:

with open(FileName, 'r') as f:
    for count, line in enumerate(f):
        insert_line_csv(count, line)
插入\u行\u csv函数如下所示:

def insert_line_csv(line_no, line):
    line = line.split(",")
    field0 = line[0]
    field1 = line[1]
    ...... 
我正在导入行_no,因为它也被输入到数据库中

如有任何见解,将不胜感激

示例数据集:

text    ,2000.00   ,2018-07-07,textwithoutcomma      ,text     ,1 
text    ,3000.00   ,2018-07-08,textwith,comma        ,text     ,7 
text    ,1000.00   ,2018-07-07,textwithoutcomma      ,text     ,4 

如果逗号分隔的字段都是固定长度的,您应该能够通过计数将其拼接,而不是通过逗号拼接,请参阅

作为一个模型代码,你有

toParse = line

while (toParse != "")
    chunk = first X chars of toParse
    restOfLine = toParse without the chars just cut off
    write chunk to db
    toParse = restOfLine
那应该对我有用

编辑:
在看到示例数据集时。是否只能有一个字段内有逗号?如果是这样,您可以通过逗号拆分,读取前3个字段,然后读取最后两个字段。不管剩下什么,都要再次连接,因为它是第四个字段的值。(如果它有逗号,你需要在那里实际连接,如果没有,它已经是值了)

数据样本在这里会有所帮助…从你的解释来看,它看起来是固定宽度的,没有逗号分隔的文件。这可能会有帮助:提供了一个样本数据集。似乎这可以通过只在字段宽度方向上进行来解决。这将是一个痛苦的认识。