如何从csv文件中读取包含逗号的列表作为列?
Posted
技术标签:
【中文标题】如何从csv文件中读取包含逗号的列表作为列?【英文标题】:how to read list which contains comma from csv file as a column? 【发布时间】: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。
逐行读取并用正则表达式分割
【参考方案1】:
您可以将这些项目连接在一起,因为您知道它们用逗号分隔
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])
【讨论】:
@galaxyan- 工作文件,但在将此记录写入另一个文件时遇到双引号 ("")。我可以在写作时也将其删除吗? @kit 加入后,数据变成字符串,所以当你写入文件时,它上面会有“”。我想知道您是否要将字符串更改为列表列表。 @galaxyan- 我不想将字符串更改为列表列表,我只想保持我的输出文件像 [40000,1][50000,5][60000,14 ] 不带引号而不是 "[40000,1][50000,5][60000,14]" 带引号 (")。 @galaxyan 不是“cote”而是“quote” @galaxyan 你写的如何在输出文件中显示引号?【参考方案2】:您可以使用自己的方言并将其注册为您需要的阅读。 https://docs.python.org/2/library/csv.html
【讨论】:
以上是关于如何从csv文件中读取包含逗号的列表作为列?的主要内容,如果未能解决你的问题,请参考以下文章