小能豆

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

javascript

假设我有一个文本文件,其中包含:

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 行,将战士替换为法师。但我能做到吗?


阅读 54

收藏
2024-07-20

共1个答案

小能豆

要编辑文本文件中的特定行,例如将“Warrior”替换为“Mage”,您可以按照以下步骤操作:

  1. 读取文件的内容。
  2. 修改您想要更改的特定行。
  3. 将修改的内容写回文件。

下面是一个完整的例子来演示这一点:

一步步代码

# Read the file
with open('stats.txt', 'r') as file:
    lines = file.readlines()

# Modify the specific line (e.g., replacing "Warrior" with "Mage")
lines[1] = 'Mage\n'  # Replace line 2, index 1 (0-based indexing)

# Write the modified contents back to the file
with open('stats.txt', 'w') as file:
    file.writelines(lines)

解释

  1. 读取文件:
  2. 以读取模式打开文件('r')。
  3. 用来file.readlines()将所有行读入名为 的列表中lines
  4. 修改线路:
  5. 修改列表中所需的行(例如,lines[1] = 'Mage\n'替换第二行)。
  6. 写回文件:
  7. 以写入模式打开文件('w'),这将覆盖该文件。
  8. 用于file.writelines(lines)将修改后的行列表写回文件。

笔记

  • 索引:文件行从 0 开始索引,因此lines[1]对应于第二行。
  • 附加换行符:如果原来有换行符,请确保将其包含\n在新行的末尾。
  • 文件处理:with语句用于文件操作,确保读取或写入后正确关闭文件。

示例输入和输出

给定原始文件:

Dan
Warrior
500
1
0

运行代码后,文件将更新为:

Dan
Mage
500
1
0

这种方法对于在文本文件中进行特定行的编辑简单而有效。

2024-07-20