【问题标题】:Python (3.9) reading specific characters at a specific line in a file?Python(3.9)在文件的特定行读取特定字符?
【发布时间】:2021-03-28 07:46:09
【问题描述】:

我不知道如何读取文本文件中特定行的特定字符;这是我尝试过的:

文件('save1.txt')内容:

line 1 | level : 1

line 2 | life : 20

我的代码:

#vars
level = 0
life = 0

#open file in read mode
save = open('save1.txt', 'r')

#setting reader vars
lreader = save.readlines()
creader = save.read()

#changing my vars to their value in the save
level = lreader[0]
level = int(creader[8:])
life = lreader[1]
life = int(creader[7:])

#returning my vars
print(level)
print(life)

#just pausing to see :)
input()

然后我有时会收到错误甚至没有输出,但不是我想要的。 如果我可以在同一行加入“lreader”和“creader”变量,这将非常有帮助让它工作。

【问题讨论】:

  • 如果您将.readlines() 转换为lreader,则“光标”位于文件末尾,.read() 返回一个空字符串。 level = lreader[0] 你如何访问文件中的特定行,不清楚为什么你会尝试覆盖该值。
  • @jonrsharpe 我想我明白了,但是,如何通过在同一行代码中精确行和我想要的字符来将值归因于我的 var?
  • lreader[line index][character index]?
  • @jonrsharpe 是的。非常感谢老兄!

标签: python string file file-handling


【解决方案1】:

@jonsharpe 向我展示了这比我想象的要容易,所以多亏了他,我才这样做:

#vars
level = 0
life = 0

#open file in read mode
save = open('save1.txt', 'r')

#setting reader vars
lreader = save.readlines()

#changing my vars to their value in the save
#I put minus 1 on the level var because apparently it outputs with the \n at the end
level = lreader[0][8:-1]
life = lreader[1][7:]

#returning my vars
print(level)
print(life)

#just pausing to see :)
input()

【讨论】:

    猜你喜欢
    • 2013-06-03
    • 2021-10-28
    • 1970-01-01
    • 2018-12-03
    • 2016-04-11
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多