【问题标题】:How to get a cell in a column with csv files如何获取包含 csv 文件的列中的单元格
【发布时间】:2019-03-01 02:42:45
【问题描述】:

我的问题是当我循环一个文件并使用索引查找来获取列时。例如

file1 = open(students_file, 'r')

    for line in file1:
        line = line.split(",")
        stu_first = (line[1])
        print(stu_first)

现在,这里打印输出:

57

61
92
51

51

空格是空的单元格。所以这一列是索引[1]。我只想打印出 57。我想指出,我没有使用模块 csv 是有充分理由的。此外,除了 os 模块之外,没有使用任何模块。

我想这样做的原因是我想得到 57 并将其乘以另一个 CSV 文件中的另一个数字(是的,我正在使用 2 个文件)。

任何其他建议都会很棒。

谢谢。

编辑:

好的,很抱歉造成误解。我是 python 新手,正在尽力解释。

所以上面的输出是 8 个学生的分数。空白处是那些没有上过课程的地方。我试图做的定义是通过该课程中的最高分来标准化这些分数。在另一个 csv 文件中,课程中的最高分是 95。因此,我想要做的是循环遍历上面的所有这些输出并将其除以 95 以获得标准化分数。例如 (57/95 = 0.6, 0/95 = None) 等等。

我希望这能解释更多?如果不告诉我。

【问题讨论】:

  • 没有得到你想要的!!
  • 你的文件里面有什么,你的预期输出是什么?
  • 您只是想在到达一个空单元格时停下来?还是跳过那个?
  • 您应该使用csv module。 CSV 允许字符串在单个列中包含逗号;在这种情况下,您的方法会导致各种问题。
  • 检查该值是否仅包含空格然后跳过该值?用预期的输出详细说明您的问题会很棒。我们都在猜测您的期望

标签: python python-3.x file csv


【解决方案1】:

你可以试试这个,它只会读取 csv 文件的第一行:

file1 = open(students_file, 'r').readline()
print(file1.split(",")[1])

【讨论】:

    【解决方案2】:

    不太确定你想做什么,但如果你只是想像你说的那样得到 57,你可以这样做:

    print(file1.split('\n')[0].split(",")[1])
    

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多