Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Csv,Python,将一列中的元素分隔为不同的列_Python_Csv - Fatal编程技术网

Csv,Python,将一列中的元素分隔为不同的列

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(输出文件,字段名=字段

我有一个像这样的CSV文件

我怎样才能像这样把它们分成不同的列


使用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导入,并将列分隔符更改为