【问题标题】:Python file.readline(2) reads first 2 charectarsPython file.readline(2) 读取前 2 个字符
【发布时间】:2018-04-01 04:20:10
【问题描述】:

我是 Python 新手,您可能已经看到我之前就类似问题提出的问题。我尝试运行下面的代码,但它只是将第一个打印到第一行(Us)的字母。这可能是我自己初学者的愚蠢,但我真的很感谢这个问题的一些帮助。如果您能解决我的问题,请提前感谢您!

我尝试在下面运行的代码:

file = open("createdFile.txt", "w")
file.write("User Data Number:\n")
file.write("10101")
file.close()
file = open("createdFile.txt", "r")
getUserNumber = file.readline(2)
print(getUserNumber)
file.close()

【问题讨论】:

  • 代码有什么问题....?
  • readline(2) 并不意味着“读取第 2 行”。它的意思是“最多读取一行中的 2 个字符”。
  • 将数字传递给readline() 会将其限制为读取该字节数。你有没有尝试阅读文档?
  • @user2357112 好的,那么您将如何阅读文本文档的某一行?
  • @JohnGordon 是的,这表明我在做正确的事情,也许我看错了什么。

标签: python python-3.x python-3.6


【解决方案1】:

请改用getUserNumber = file.readlines()[1]

readline 读取下一行,arg 是要读取多少个字符,所以之前是读取第一行的前两个字符。

因此,您应该做的是阅读所有行 (file.readlines()),然后选择您想要的行 ([1])。

【讨论】:

  • 一个问题,这只能让我阅读 1 行,而不是在错误消息中显示其超出范围,你知道这可能是什么吗?
  • 但是我建议在处理大文件时不要这样做——使用readlines() 你会得到一个所有行的列表(不是迭代器,see here for more),所以要注意如果你只需要大文件的第二行,你可以简单地readline()两次
  • @EP 如果我有一个有 4 行的文件,我想得到第 2 行和第 4 行,那你建议怎么做?
  • @houbysoft 我尝试使用您的方法,但仍然给出了相同的“超出范围”错误消​​息。我输入了lines = file.readlines(),然后我输入了variable = lines[2]。这是正确的做法吗?
  • @profound.donut 在你做完lines = file.readlines() 之后print(len(lines)) 会说什么?
猜你喜欢
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 2014-01-26
  • 2019-03-15
  • 2018-09-06
  • 2014-07-07
  • 1970-01-01
  • 2021-12-26
相关资源
最近更新 更多