我有一个固定长度
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
. 然后我可以使用代码中提到的解析将其分解为不同的字段。
你能告诉我哪里出错了吗?