【问题标题】:Python open file cvs reader has no attributePython打开文件csv阅读器没有属性
【发布时间】:2018-10-06 11:40:22
【问题描述】:

这应该打开一个制表符分隔的文件并打印第一行,然后将它们相加。该列只是数字。我有一个错误,也不知道以后如何添加它们。

with open(filePath + fileName, 'rt')  as inputfile:
    next(inputfile)
    dataArray = csv.reader(inputfile, delimiter='\t')
    for row in inputfile:
        print dataArray.split('\t',1)

这是错误:

  File "./Medicalsys", line 38, in <module>
    print dataArray.split('\t',1)
AttributeError: '_csv.reader' object has no attribute 'split'

【问题讨论】:

  • 您混合了三种不同的文件解析方式。 csv.reader 的全部意义在于您可以只执行 for row in dataArray: 并且该行已经拆分为值列表,而无需调用 split。 (但你必须这样做for row in dataArray:,而不是for row in inputfile:,才能让它工作。)
  • 或者,如果你想手动分割行,去掉csv.reader,然后for line in inputfile:是有意义的——但是你必须在line上调用split,不在整个文件上(或围绕它的阅读器)。

标签: python csv scripting reader


【解决方案1】:

您需要将 dataArray 迭代为:

for row in dataArray:
    print(row[0])  # already split by tab by csv.reader(inputfile, delimiter='\t')

【讨论】:

  • 谢谢!虽然这确实打印了文件中的所有变量,但我如何只取第一列数字?
  • 你是最棒的,谢谢大家的帮助!现在可以了。
猜你喜欢
  • 2016-12-15
  • 2017-10-15
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多