【问题标题】:Why aren't both "for loops" working?为什么两个“for循环”都不起作用?
【发布时间】:2017-03-30 22:28:23
【问题描述】:
import csv

def csv_reader(file_obj):      
    reader = csv.reader(file_obj)
    # for row in reader:
        # print(" ".join(row))

    reader_2 = csv.DictReader(file_obj, delimiter=",")
    for row_2 in reader_2:
        print(row_2)

csv_path = "data.csv"
with open(csv_path, "r") as f_obj:
    csv_reader(f_obj)

如果第一个“for 循环”被注释掉,我不明白为什么第二个“for 循环”只打印任何文本。

【问题讨论】:

  • 嗨,欢迎来到 Stack Overflow。如果您的代码格式正确,这对我们有很大帮助 - 您介意花时间确保对齐正确吗?
  • 您应该考虑构建一个信息更丰富的标题。
  • 哪部分对齐不正确?
  • @Apero 显然已经为您修复了它。这就是问题最初的写法stackoverflow.com/revisions/43129413/1

标签: python


【解决方案1】:

CSV 阅读器已经使用了您的文件。 在再次使用之前调用file_obj.seek(0) 应该可以解决问题。

另外,为每个操作打开(然后关闭)文件也可以。

【讨论】:

    【解决方案2】:

    这是因为您将相同的文件处理程序传递给两个csv 阅读器对象。一旦您对其进行了一次迭代,您必须手动执行file_obj.seek(0) 以使其按预期工作,否则它就像一个空文件一样。

    【讨论】:

      猜你喜欢
      • 2014-01-30
      • 2013-12-13
      • 1970-01-01
      • 2019-07-23
      • 2016-11-12
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      相关资源
      最近更新 更多