|
发表于 2020-6-7 18:40:56
|
显示全部楼层
本帖最后由 Twilight6 于 2020-6-7 18:49 编辑
- for each in list:
- count+=each
- print(count)
- print('count:%d'%count)
复制代码
这个for循环没意义,可以去掉,统计数量的用第一个for循环即可,也是因为这个循环导致你统计出错,还有就是count 每次循环应该 += 而不是 =
content.append(eachline) 写入文件要将替换后的文本加入列表,要写在循环里,你写到了循环外
- res=input(print('文件%s有%d处%s,确定全部替换为%s么? yes or no ?'%(file_name,count,old,new)))
复制代码
这里因为print 没有返回值,所以会返回一个None ,你可用把 print 去掉
完整代码:
- #全部替换
- def file_replace(file_name,old,new):
- f=open(file_name)
- count=0 #计数
- content=[]
- for eachline in f:
- if old in eachline:
- count+=eachline.count(old)
- eachline=eachline.replace(old,new)
- content.append(eachline)
- if count>0:
- res=input('文件%s有%d处%s,确定全部替换为%s么? yes or no ?'%(file_name,count,old,new))
- if res in ['YES', 'Yes', 'yes']:
- f_write=open(file_name,'w')
- f_write.writelines(content)
- f_write.close()
- print('替换成功,请检测文件内容噢')
- else:
- print('文件中无此单词,无效替换')
- f.close()
- file_name = input('请输入文件名:')
- old = input('请输入需要替换的单词或字符:')
- new = input('请输入新的单词或字符:')
- file_replace(file_name, old, new)
复制代码 |
|