0

我有一个固定长度 0001ABC,DEF1234 的文件,例如:文件定义是:

id[1:4]
name[5:11]
phone[12:15]

我需要将此数据加载到表中。我尝试使用 CSV 模块并定义了每个字段的固定长度。除了名称字段外,它工作正常。对于 NAME 字段,仅加载 ABC 之前的值。原因是:当我使用 CSV 模块时,它将 0001ABC 视为一个值,并且只解析到该值。

我在读取文件时尝试使用 escapechar = ',',但它从数据中删除了 ','。我也试过 quoting=csv.QUOTE_ALL 但这也没有用。

with open("xyz.csv") as csvfile:
    readCSV = csv.reader(csvfile)
    writeCSV = open("sample_csv", 'w');
    output = csv.writer(writeCSV, dialect='excel', lineterminator="\n")
    for row in readCSV:
         print(row) # to debug #
         data= str(row[0])
         print(data) # to debug #
         id = data[0:4]
         name = data[5:11]
         phone = data[12:15]
         output.writerow([id,name,phone])
    writeCSV.close()

打印命令的输出:

row: ['0001ABC','DEF1234'] data: 0001ABC

0001ABC,DEF1234理想情况下,我希望在变量中看到整个集合: data. 然后我可以使用代码中提到的解析将其分解为不同的字段。

你能告诉我哪里出错了吗?

4

0 回答 0