一种简单的方法可能是将文本读入字符串,然后将字符串与要写入的文本连接起来:
infile = open('hey.txt','r+')
content = infile.read()
text = ['foo','bar']
for item in text:
content +=item #adds 'foo' on first iteration, 'bar' on second
infile.write(content)
infile.close()
或更改特定关键字:
infile = open('hey.txt','r+')
content = infile.read()
table = str.maketrans('foo','bar')
content = content.translate(table) #replaces 'foo' with 'bar'
infile.write(content)
infile.close()
或逐行更改,您可以使用 readlines 并将每一行称为列表的索引:
infile = open('hey.txt','r+')
content = infile.readlines() #reads line by line and out puts a list of each line
content[1] = 'This is a new line\n' #replaces content of the 2nd line (index 1)
infile.write(content)
infile.close()
也许不是一个特别优雅的解决问题的方法,但它可以封装在一个函数中,并且“文本”变量可以是多种数据类型,如字典、列表等。还有很多方法可以替换文件中的每一行,它仅取决于更改行的标准(您是在搜索行中的字符或单词吗?您是否只是想根据文件中的位置替换一行?)- - 所以这些也是需要考虑的一些事情。
编辑:为第三个代码示例添加了引号