|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问以下代码有什么问题吗?想要将对应的文字替换成新文字,能运行,但是运行结果不对,如下:
运行结果:
请输入文件名:record.txt
请输入需要替换的单词或字符:小甲鱼
请输入新的单词或字符:甲鱼
文件record.txt中共有1个【小甲鱼】
您确定要把所有的【小甲鱼】替换为【甲鱼】吗?
【YES/NO】:yes
record.txt文件中不只一个小甲鱼字符,而且文件并没有改动.
完整代码如下:
def file_replace(file_name,rep_word,new_word):
f_read=open(file_name)
content=[]
count=0
for eachline in f_read:
if rep_word in eachline:
count=eachline.count(rep_word)
eachline=eachline.replace(rep_word,new_word)
content.append(eachline)
decide=input('\n文件%s中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:'\
%(file_name,count,rep_word,rep_word,new_word))
if decide in ['YES','Yes','yes']:
f_write=open(file_name,'w')
f_write.writelines(content)
f_write.close()
f_read.close()
file_name=input('请输入文件名:')
rep_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单词或字符:')
file_replace(file_name,rep_word,new_word)
你统计次数那错了:count=eachline.count(rep_word)
改成:count+=eachline.count(rep_word)
完整代码:def file_replace(file_name,rep_word,new_word):
f_read=open(file_name)
content=[]
count = 0
for eachline in f_read:
if rep_word in eachline:
count+=eachline.count(rep_word)
eachline=eachline.replace(rep_word,new_word)
content.append(eachline)
decide=input('\n文件%s中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:'\
%(file_name,count,rep_word,rep_word,new_word))
if decide in ['YES','Yes','yes']:
f_write=open(file_name,'w')
f_write.writelines(content)
f_write.close()
f_read.close()
file_name=input('请输入文件名:')
rep_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单词或字符:')
file_replace(file_name,rep_word,new_word)
|
|