Python CSV,元素保留在txt文件中的同一单元格中



因此,我试图创建几个列作为信息,并命名列或列顶部的标签,但代码以以下方式编写它们:

Name,Age,Height,Weight,Budget,Objective,Type of diet

所有这些都在一个单元格中,我希望它们都在不同的列中。代码如下:

import csv
fields = ["Name","Age", "Height", "Weight", "Budget", "Objective",  '''Type of diet''']
filename = "nutritec.csv"
with open(filename, 'w+') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerow(fields)

运行您的代码,我会得到以下输出:

Name,Age,Height,Weight,Budget,Objective,Type of diet

这是CSV标题行的正确输出。根据RFC-4180:

可能有一个可选的标题行作为第一行出现与正常记录行格式相同的文件的。这标头将包含与文件中的字段相对应的名称并且应包含与中的记录相同数量的字段文件的其余部分(是否存在标题行应该通过可选的";标题";的参数MIME类型(。例如:

field_name,field_name CRLFaaa、bbb、ccc CRLFzzz,yyy,xxx CRLF ``

根据(区域设置(的不同,Excel在打开文件时可以使用不同的分隔符作为默认分隔符(例如;<tab>或CCD_4(。

您可以强制Excel使用如下逗号:

from xlwt import Workbook
wb = Workbook()
sheet1 = wb.add_sheet('Sheet 1') 
for i in range(len(fields)):
sheet1.write(0, i, fields[i])

这是"Excel特定的",但大多数其他csv阅读器应该识别或忽略这第一行。

另一种选择是使用不同的分隔符。

您也可以导入csv文件,而不仅仅是打开该文件。这使您有机会选择分隔符和其他一些设置。

如果我理解,您正在使用excel(或任何其他电子表格(打开csv文件。您将在excel中打开的所有csv将为每行使用一个单元格,因为csv中不存在"列"的用法。

你应该尝试使用xlsxwriter或类似的东西来生成xlsx文件

CSV表示值以逗号分隔,因此当您在excel中查看时,您将在1列中看到所有值。您可以将excel中的分隔符设置为",它应该将所有字段分隔成不同的列。或者,您可以使用xlwt模块编写excel。

PD_6你也可以使用熊猫,但这似乎有点过分。

好吧,过了一段时间,我发现问题是如何由Windows配置引起的。我解决了将","深度更改为windows配置的问题。

  1. 转到Windows设置
  2. 转到时间和语言
  3. 日期、时间和区域设置的其他选项
  4. 更改日期、时间和数字格式
  5. 其他设置
  6. 将"列表分隔符"更改为

很抱歉,如果单词是错误的,不是出生语言,窗口是不同的语言

最新更新