【问题标题】:reading .txt file in python在python中读取.txt文件
【发布时间】:2020-08-22 07:23:56
【问题描述】:

我对 python 中的代码有疑问。我想阅读一个 .txt 文件。我使用代码:

f = open('test.txt', 'r')  # We need to re-open the file
data = f.read()

print(data)

我只想读取这个 .txt 文件的第一行。我用

f = open('test.txt', 'r')  # We need to re-open the file
data = f.readline(1)

print(data)

但我看到屏幕上只显示了该行的第一个字母。

你能帮我读一下这行的所有字母吗? (我的意思是阅读整个 .txt 文件的行)

【问题讨论】:

  • f = open('test.txt', 'r') 之后,然后是one_line = next(f)

标签: python command line


【解决方案1】:
with open("file.txt") as f:
   print(f.readline())

这将使用with上下文块打开文件(完成后会自动关闭文件),并读取第一行,这将与:

f = open(“file.txt”)
print(f.readline())
f.close()

您对f.readline(1) 的尝试将不起作用,因为它的参数意味着要在文件中打印多少个字符,因此它只会打印第一个字符。

第二种方法:

with open("file.txt") as f:
   print(f.readlines()[0])

或者您也可以执行上述操作,这将获取行列表并仅打印第一行。

要阅读第五行,请使用

with open("file.txt") as f:
   print(f.readlines()[4])

或者:

with open("file.txt") as f:
   lines = []
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   lines += f.readline()
   print(lines[-1])

-1 代表列表的最后一项

了解更多:

【讨论】:

  • 我只想阅读第 5 行。我怎么能这样做?
【解决方案2】:

您的第一次尝试即将完成,您应该完成以下操作:

f = open('my_file.txt', 'r')
line = f.readline()
print(line)
f.close()

更安全的文件读取方法是:

with open('my_file.txt', 'r') as f:
    print(f.readline())

两种方式都只打印第一行。

您的错误是您将1 传递给readline,这意味着您要读取大小为1,这只是一个字符。请参考https://www.w3schools.com/python/ref_file_readline.asp

【讨论】:

  • 我只想阅读第 5 行。我怎么能这样做?
  • @IvanRoma 只需在文件上迭代 5 次,如果您将调用 readline 方法 5 次,您将获得第 5 行,或 f.readlines()[4]
  • 请发表评论,解释您为什么不赞成我的回答,谢谢。
【解决方案3】:

根据您的建议,我试过了,它可以工作:

f = open('test.txt', 'r')
data = f.readlines()[1]

print(data)

【讨论】:

  • 如果有用,您可以“接受”或验证我(或其他人)的回答,只需点击投票按钮下方的勾号 - stackoverflow.com/help/accepted-answer
  • 另外,完成后请记得f.close()关闭文件,查看我的回答了解更多详情
【解决方案4】:

改用with open(...)

with open("test.txt") as file:
    line = file.readline()
    print(line)

【讨论】:

    【解决方案5】:

    保持f.readline() 不带参数。

    它将以字符串形式返回第一行并将光标移动到第二行。

    下次您使用f.readline() 时,它将返回第二行并将光标移动到下一行,等等...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-15
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多