当前位置: 首页 > 面试题库 >

在Python中编辑文本文件中的特定行

潘兴朝
2023-03-14
问题内容

假设我有一个包含以下内容的文本文件:

Dan
Warrior
500
1
0

有什么方法可以编辑该文本文件中的特定行?现在我有这个:

#!/usr/bin/env python
import io

myfile = open('stats.txt', 'r')
dan = myfile.readline()
print dan
print "Your name: " + dan.split('\n')[0]

try:
    myfile = open('stats.txt', 'a')
    myfile.writelines('Mage')[1]
except IOError:
        myfile.close()
finally:
        myfile.close()

是的,我知道那myfile.writelines('Mage')[1]是不正确的。但是你明白我的意思吧?我正在尝试通过用法师替换战士来编辑第2行。但是我还能做到吗?


问题答案:

您想做这样的事情:

# with is like your try .. finally block in this case
with open('stats.txt', 'r') as file:
    # read a list of lines into data
    data = file.readlines()

print data
print "Your name: " + data[0]

# now change the 2nd line, note that you have to add a newline
data[1] = 'Mage\n'

# and write everything back
with open('stats.txt', 'w') as file:
    file.writelines( data )

这样做的原因是您不能直接在文件中执行“更改第2行”之类的操作。您只能覆盖(而不是删除)文件的某些部分-
这意味着新内容仅覆盖旧内容。因此,如果您在第2行上写了“ Mage”,则结果行将是“ Mageior”。



 类似资料:
  • 编辑文本 要选择一种文字图层,请执行下列操作之一: 选择“移动”工具 并在画布上双击文字图层。 选择横排文字工具 或竖排文字工具。在“图层”面板中选择文字图层,或者单击文本流以自动选择文字图层。 在文本中定位到插入点,然后执行下列操作之一: 单击以设置插入点。 选择要编辑的一个或多个字符。 根据需要输入文本。 要将更改应用到文字图层,请执行下列操作之一: 选择一个新工具。 在“图层”面板中单击某个

  • 问题内容: 我有一个文本文件,其中包含一个由数字组成的表格,例如: 5 10 6 6 20 1 7 30 4 8 40 3 9 23 1 4 13 6 例如,如果我想要仅包含在第二列中的数字,我该如何将该列提取到列表中? 问题答案: 您可以使用列表理解来做同样的事情 Docs 返回字符串的单词列表。如果不存在可选的第二个参数sep或“无”,则单词将由任意的空白字符字符串(空格,制表符,换行符,返回

  • 我试图在EditText中设置文本,但它说: 我的代码如下: 不要说用< code>setText,因为我用的是kotlin,不是Java。

  • 问题内容: 我想补充一个特定的线路,可以说,到开头的文件,并应添加到该文件中的15号线。 这是向文件添加文本的方法: 这是如何向以MakeFile开头的文件中添加文本,我认为: 但是我无法将此行添加到文件的第15行。 问题答案: 您可以用来解决此问题: 或使用选项保存对文件所做的更改。 要更改所有从此开始的文件: 注意:以上是放置文本的兴趣点。

  • 我想在用户在EditText中键入文本时将文本放入我的应用程序中的某个字符串中,并使用它来生动地在活动上显示它(在不同的视图中...) - 就像谷歌的实时/即时搜索工作一样...

  • 问题内容: 我不是在谈论特定的行号,因为我正在读取具有相同格式但长度不同的多个文件。 说我有这个文本文件: 我希望你知道我的意思。我正在考虑遍历文件,然后使用正则表达式搜索以找到“开始”和“结束”的行号,然后使用线缓存从开始行读取到结束行。但是如何获得行号?我可以使用什么功能? 问题答案: 如果您只想要和之间的文本块,则可以执行以下操作: 实际上,您不需要操纵行号即可读取开始和结束标记之间的数据。