【发布时间】:2016-07-20 13:19:27
【问题描述】:
我想读取包含以下数据的 csv 文件:
Input.csv-
10,[40000,1][50000,5][60000,14]
20,[40000,5][50000,2][60000,1][70000,1][80000,1][90000,1]
30,[60000,4]
40,[40000,5][50000,14]
我想解析这个 csv 文件并逐行解析它。但是这些列表包含逗号(','),所以我没有得到正确的结果。
程序代码-
if __name__ == "__main__":
with open(inputfile, "r") as f:
reader = csv.reader(f,skipinitialspace=True)
next(reader,None)
for read in reader:
no = read[0]
splitted_record = read[1]
print splitted_record
输出-
[40000
[40000
[60000
[40000
我可以理解 read.csv 方法读取每列的逗号。但是我如何才能将整个列表读取为一列呢?
预期输出-
[40000,1][50000,5][60000,14]
[40000,5][50000,2][60000,1][70000,1][80000,1][90000,1]
[60000,4]
[40000,5][50000,14]
将内容写入其他文件-
name_list = ['no','splitted_record']
file_name = 'temp/'+ no +'.csv'
if not os.path.exists(file_name):
f = open(file_name, 'a')
writer = csv.DictWriter(f,delimiter=',',fieldnames=name_list)
writer.writeheader()
else:
f = open(file_name, 'a')
writer = csv.DictWriter(f,delimiter=',',fieldnames=name_list)
writer.writerow({'no':no,'splitted_record':splitted_record})
如何在没有引号 ("") 的情况下编写此 splitted_record?
感谢所有回复!
【问题讨论】:
-
为什么不
open和 read 没有csv -
@Moses Koledoye- 这是 csv 文件,它的标题也没有,splitted_record 所以我正在阅读 csv.reader。
-
逐行读取并用正则表达式分割