【问题标题】:Separating headers when importing a txt-file in python在 python 中导入 txt 文件时分隔标题
【发布时间】:2017-08-04 13:18:15
【问题描述】:

正如标题所述,我在将标题与具有以下结构的 txt 文件分开时遇到了一些麻烦:

...
02-10-29    133.50
02-10-30    140.00
02-10-31    139.00
02-11-01    134.50
AstraZeneca
02-08-01    339.50
02-08-02    360.50
02-08-05    353.00
02-08-06    333.50
...

现在这种情况下的标题是“AstraZeneca”。我一直使用的代码是:

with open("kurser.txt") as kurser:
namnrad = kurser.readline()
kurslista_ericsson = []
kurslista_electrolux = []
radnr = 0
for rad in kurser:
    if 36 < radnr < 67:
        info = rad.strip().split("\t")
        kurs = info[1]
        kurslista_ericsson.append(kurs)
    if radnr == 67:                  #<--- This is my attempted solution
        namnrad_2 = kurser.readline
    if 67 < radnr < 135:
        info_2 = rad.strip().split("\t")
        kurs_2 =info_2[1]
        kurslista_electrolux.append(kurs_2)
    radnr = radnr + 1

print(namnrad)
print(namnrad_2)

问题是,当我尝试打印第一个标题“namnrad”时,一切正常,但是当我尝试打印第二个标题“namnrad_2”时,我得到“0x109c38270 处文件对象的内置方法读取行” . 我应该怎么做才能解决这个问题?提前谢谢你!

【问题讨论】:

    标签: python header source-separation


    【解决方案1】:

    您在此处缺少括号:namnrad_2 = kurser.readline()

    【讨论】:

    • 哦,是的,你是对的!我对其进行了测试,但现在它给了我错误“ValueError:混合迭代和读取方法会丢失数据”。你知道这是什么原因吗?
    • @Jurkka 使用 for rad in kurser: 您正在使用循环一次一行地迭代 kurser。您应该让 for 循环为您将每一行读入rad,在循环内调用readline 会中断迭代。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2016-03-05
    • 2023-03-07
    相关资源
    最近更新 更多