【问题标题】:Python CSV Module (.cell)Python CSV 模块 (.cell)
【发布时间】:2022-01-11 15:22:33
【问题描述】:

我想对来自 csv 文件的数据进行排序(制作表格)。现在我有一个模板,它与我想要制作的东西相同,但使用的是 openpyxl-library 而不是我使用的 csv-library。在 openpyxl 库中,您可以使用“.cell”只与一个单元格对话。如何使用 csv 执行此操作? Example with openpyxl

这是我当前的 csv 代码(file 是我文件的变量,而 .cell 不起作用):

csvreader = csv.reader(file)

column = []
column = next(csvreader)
for x in range(1, csvreader.line_num+1):
name = csvreader.delimiter(1, x).value
sqltype = ("INTEGER" if type(csvreader.delimiter(2, x).value) == int else "NVARCHAR(255)")
print(f'"{name}" {sqltype},')

【问题讨论】:

  • 这不是代码编写服务。请附上您的代码并提出相关问题。
  • 另外,不要发布代码、错误、输出等的图像。复制/粘贴为格式化文本。
  • 阅读器为每一行返回一个元组。您可以通过其位置访问各个元素。 IE。对于 csvreader 中的行:cell = row[0]

标签: python sql csv cell openpyxl


【解决方案1】:

CSV 中没有单元格,因此您可以做的是逐行遍历文件。

所以你的代码看起来像:

  1. for 循环逐行进行,
  2. 每行用逗号分隔

对于 2. 现在您有一个包含 CSV 的每个值的数组,“单元格”将是数组值,因此 splitterLine[5] 将是单元格 6。

如果您将代码包含在您启动的任何代码中,我可以为您提供更多帮助。

【讨论】:

  • 您可以在上面的问题中看到我的 csv 代码。 File 是我的文件的变量,这应该可以,但显然 csvreader.cell 语句不起作用。
  • 很高兴你弄明白了
【解决方案2】:

我的问题解决了: 这真的很简单,因为使用 CSV-Library,您可以轻松地使用 csv-list 创建一个数组。 解决方案:

columns = []
for x in range(0, 10+1):
name = header[x]
sqltype = ("INTEGER" if type(header[x]) == int else "NVARCHAR(255)")
print(f'"{name}" {sqltype},')
columns.append(name)

如何制作数组:

header = []
header = next(csvreader)
header

变量 csvreader(文件是我导入文件中的变量):

csvreader = csv.reader(file, delimiter=";")

【讨论】:

  • 标准库中 CSV 模块的文档涵盖了这一点,而且也更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 2014-02-11
  • 2017-11-05
  • 2020-01-27
  • 1970-01-01
  • 2017-12-07
相关资源
最近更新 更多