Python 如何从csv文件中读取包含逗号的列表作为列?
我想读取包含以下数据的csv文件: Input.csv-Python 如何从csv文件中读取包含逗号的列表作为列?,python,list,csv,comma,Python,List,Csv,Comma,我想读取包含以下数据的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] if __name__ == "__main__": with open(inputfile, "r") as f: reader = csv.reade
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]
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,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})
我想解析这个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]
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,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})
输出-
[40000
[40000
[60000
[40000
我可以理解read.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]
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,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})
将内容写入其他文件-
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]
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,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})
我怎样才能写出这个没有引号(“”)的拆分记录
谢谢大家的回复 您可以将这些项目连接在一起,因为您知道它是用逗号分割的
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 = ','.join(read[1:])
print splitted_record
输出
[40000,1][50000,5][60000,14]
[40000,5][50000,2][60000,1][70000,1][80000,1][90000,1]
[60000,4]
[40000,5][50000,14]
---更新---
数据为上述输出
with open(filepath,'wb') as f:
w = csv.writer(f)
for line in data:
w.writerow([line])
你可以使用自己的方言,根据需要注册阅读。
为什么不打开
阅读csv
@Moses Koledoye-这是一个csv文件,它的标题也没有,拆分了_记录,所以我用csv.reader.read逐行阅读,并用常规的expression@galaxyan-工作文件,但在将此记录写入另一个文件时遇到双字符(“”)。我可以在写入时删除它吗?@kit在加入后,数据会变成字符串,所以当您写入文件时,文件上会有“”。我想知道您是否要将字符串更改为列表列表。@galaxyan-我不想将字符串更改为列表列表,我只想保留输出文件,因为它类似于没有引号的[40000,1][50000,5][60000,14],而不是带引号的“[40000,1][50000,5][60000,14]”(“)@galaxyan不是“cote”而是“quote”@galaxyan您是如何编写在输出文件中显示引号的?