【问题标题】:Getting the first strings of lines from file in python从python中的文件中获取第一行字符串
【发布时间】:2017-02-07 23:36:33
【问题描述】:

我是 Python 新手,所以这个问题可能很容易问,但我真的需要帮助。我有一个包含以下内容的示例文件:

整数 1 3 5 7 9
浮点数 3.14 4.55 5.66
双4.35993 3.456 4.5555

行中的项目由一个空格分隔。我想知道如何从文件中获取第一个单词,例如“Integer”和“Double”。这是我获取文件内容的代码:

with open('sample.txt','r') as myfile:
    data=myfile.read()
    print(data)

但我不知道如何打印第一行字符串(整数、浮点数或双精度)。如果可能的话,你能帮我解决这个问题吗?非常感谢!

【问题讨论】:

    标签: python string file file-io split


    【解决方案1】:

    您可能希望使用readlines() 将所有行读入一个列表并遍历该列表。带有默认参数的split() 将拆分为空格,返回一个列表类型。因此使用索引 0 从标记化列表中获取第一项。

    with open('sample.txt','r') as myfile:
        for line in myfile.readlines()
            print(line.split()[0])
    

    【讨论】:

    • 只需使用for line in myfile:... 在这种情况下,myfile.readlines() 完全没用,因为您没有存储结果,您不妨逐行懒惰地迭代文件,而不是急切地迭代。
    • @juanpa.arrivillaga 同意。旧习惯难改!
    • 感谢您的帮助!请再问一个问题。由于我现在有这些人(整数、双精度、浮点数),我怎样才能获得指定的项目(例如整数或浮点数)? @nitimalh
    • 不确定获取指定项目是什么意思?如果您正在寻找匹配,您可能想要考虑进行正则表达式匹配?!
    • 不,实际上我的意思是因为我现在有每行的开头(即 Integer、Float、Double),我如何打印其中的特定行(例如,Integer)。我尝试了 print(line.split()[0][0]) 但它不起作用(
    【解决方案2】:
    with open('sample.txt', 'r') as myfile:
        data = myfile.readlines()
    for d in data:
        print(d.split()[0])
    

    • 使用readlines逐行读取。
    • split() 用空格分隔每一行。
    • [0] 占据第一个索引位置,即您想要的单词。

    【讨论】:

      【解决方案3】:

      您需要使用.split() 并通过帮助切片语法给出您想要的。

      【讨论】:

        猜你喜欢
        • 2014-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        • 2015-08-06
        相关资源
        最近更新 更多