【问题标题】:Print specific line in a .txt file in Python?在 Python 的 .txt 文件中打印特定行?
【发布时间】:2012-05-06 03:46:27
【问题描述】:

我有一个包含很多行的 .txt 文件。我希望我的程序问我要打印哪一行,然后将其打印到 python shell 中。 .txt 文件称为 packages.txt。

【问题讨论】:

  • 我试过了:'f=open('packages.txt') lines=f.readlines()'
  • 对不起,我不知道如何格式化代码...?
  • 代码最好放在question中,而不是放在cmets中。使用{} 工具栏按钮将代码缩进四个空格以格式化问题中的代码。
  • 别担心,你是新来的。我们不希望您立即了解该网站的所有信息。
  • 那么什么不起作用?您描述了读取文件的代码;你认为下一个合乎逻辑的步骤是什么?

标签: python printing line


【解决方案1】:

如果您不想预先读取整个文件,您可以简单地迭代直到找到行号:

with open('packages.txt') as f:
    for i, line in enumerate(f, 1):
        if i == num:
            break
print line

或者您可以使用itertools.islice() 来切出所需的行(这有点hacky)

with open('packages.txt') as f:
    for line in itertools.islice(f, num+1, num+2):
        print line

【讨论】:

    【解决方案2】:

    如果文件很大,使用 readlines 可能不是一个好主意,最好逐个阅读它们直到到达那里。

    line_number = int(raw_input('Enter the line number: '))
    with open('packages.txt') as f:
        i = 1
        for line in f:
            if i == line_number:
                break
            i += 1
        # line now holds the line 
        # (or is empty if the file is smaller than that number)
        print line
    

    (已更新以修复代码中的错误)

    【讨论】:

    • 谢谢你,成功了。但是由于某种原因,例如,如果我输入 3,它将从第 1-3 行打印?
    • @spinlok, s/i==1/i=1/?你什么意思?
    • @VincenTTTTTTTTTTTT marga 使用i==1 初始化了i,这是错误的。应该是i=1
    【解决方案3】:

    如何使用行号引用文件的特定行?就像在 java 中一样,如果行号 = i 并且文件存储在 f 中,那么 f(i) 就可以了。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多