Csv,Python,将一列中的元素分隔为不同的列
我有一个像这样的CSV文件 我怎样才能像这样把它们分成不同的列Csv,Python,将一列中的元素分隔为不同的列,python,csv,Python,Csv,我有一个像这样的CSV文件 我怎样才能像这样把它们分成不同的列 使用python而不使用pandas库。应在python 3.6+中工作的实现 导入csv 打开(“input.csv”,newline=“”)作为输入文件: 打开(“output.csv”,“w”,newline=“”)作为输出文件: reader=csv.DictReader(输入文件)#reader fieldnames=reader.fieldnames writer=csv.DictWriter(输出文件,字段名=字段
使用python而不使用pandas库。应在python 3.6+中工作的实现
导入csv
打开(“input.csv”,newline=“”)作为输入文件:
打开(“output.csv”,“w”,newline=“”)作为输出文件:
reader=csv.DictReader(输入文件)#reader
fieldnames=reader.fieldnames
writer=csv.DictWriter(输出文件,字段名=字段名)#writer
#制作标题
writer.writeheader()
#循环输入CSV中的每一行
对于读取器中的行:
#获取第一列
列:str=str(行[字段名[0]])
编号:列表=列。拆分(“,”)
如果len(数字)!=len(字段名):
打印(“错误:长度不相等”)
#在输出CSV中写入行
writer.writerow({field:num代表字段,num在zip中(fieldnames,numbers)})
代码说明:
- 上述代码采用两个文件名
和input.csv
。这些冗长的名字不需要任何进一步的解释output.csv
- 它从
读取每一行,并在input.csv
中写入相应的行output.csv
- 最后一行是“字典理解”和
(类似于列表的“列表理解”)。这是一种在一行中完成大量工作的好方法,但相同的代码在扩展形式下如下所示:zip
row={}
对于字段,zip中的num(字段名、数字):
行[字段]=num
writer.writerow(行)
它已经被分隔成不同的列,
作为分隔符,但是欧洲版的excel通常使用代码>作为分隔符。导入csv时,可以指定分隔符:
如果确实想用python更改文件内容,请使用replace函数并用替换,
代码>:我建议查看内置模块。它们已经被分为不同的列,您应该在Excel中将文件作为CSV导入,并指定逗号(,
)作为分隔符。问题是它们位于列中A@bernardo,您可以将文件作为CSV导入,并将列分隔符更改为,
: