python2013版029讲第四题代码有错误!
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) #count感觉应该用这个
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)
这个是小甲鱼的代码↑
但你复制输入执行代码之后会出现:
请输入文件名:something.txt
请输入需要替换的单词或字符:愿
请输入新的单词或字符:希望
文件 something.txt 中共有1个【愿】
您确定要把所有的【愿】替换为【希望】吗?
【YES/NO】:
居然只有1个愿!
代码有误!
def file_replace(file_name, rep_word, new_word):
f_read = open(file_name)
content = []
count = 0
num = 0
for eachline in f_read:
if rep_word in eachline:
count = eachline.count(rep_word) #count感觉应该用这个
eachline = eachline.replace(rep_word, new_word)
num += int(count)
content.append(eachline)
decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
% (file_name, num, 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那里有问题,所以赶紧过来看看有没有前辈发现并质疑!{:10_254:} 我今天也发现了,,我还一直在想count不是只计算eachline这一行的数量吗,并没有累加啊,后来把他改成了count = count + eachline.count(rep_word)。
页:
[1]