Python原地替换文件中的内容
需要使用fileinput这个标准库
官网链接:https://docs.python.org/zh-cn/3/library/fileinput.html

代码如下:
#!/usr/bin/env python
# coding: utf-8
"""原地替换文件中的内容
使用标准库中的fileinput中的类FileInput来原地过滤/原地重写文件
例如将'Sample.txt'文件中的'Hi'这个单词替换为'Hello',其余不变
"""
from fileinput import FileInput
def replace_text_in_file():
file_name = 'Sample.txt'
old_word = 'Hi'
new_word = 'Hello'
# inplace=True:开启原地重写
# encoding='utf-8':编码格式设置为UTF-8格式
for old_line in FileInput(file_name, inplace=True, encoding='utf-8'):
if old_word in old_line:
# print之前可以做任何合规操作
new_line = old_line.replace(old_word, new_word)
# print不会在控制台打印任何输出,而是直接输出到原文件中
print(new_line, end='')
else:
# 读取文件中的每行的line都自带一个'\n',所以让line的末尾不加任何东西
print(old_line, end='')
# 上一个函数的优化写法
def replace_text_in_file_optimize():
file_name = 'Sample.txt'
old_word = 'Hi'
new_word = 'Hello'
for line in FileInput(file_name, inplace=True, encoding='utf-8'):
# 这里可以直接对每行都尝试进行替换的操作,无需判断
print(line.replace(old_word, new_word), end='')
if __name__ == '__main__':
replace_text_in_file()
# replace_text_in_file_optimize()
示例 Sample.txt 文本文件的内容如下:
这是一个示例文本文件
里面有一些示例内容
Hi Google!
其他示例内容
运行代码后 Sample.txt 内容如下:
这是一个示例文本文件
里面有一些示例内容
Hello Google!
其他示例内容
注:此文件需要和上面的py文件同级,即在同一目录下


浙公网安备 33010602011771号