|
|
3鱼币
- def file_replace(file_name,str_old,str_new):
- file = open(file_name)
- content = []
- count = 0
-
- for each in file:
- if str_old in each:
- count += each.count(str_old)
-
- print('文件%s共有%d个%s' %(file_name,count,str_old))
- print('您确定要把所有的%s全部转换为%s吗?' % (str_old,str_new))
- confirm = str(input('YES/NO:'))
- if confirm == 'YES' or confirm == 'yes':
- #这里要替换所有的字符
- for each in file:
- if str_old in each:
- each = each.replace(str_old,str_new)
- content.append(each)
-
- filewrite = open(file_name,'w')
- filewrite.writelines(content)
- filewrite.close()
- file.close()
- file_name = input('请输入文件名:')
- str_old = input('请输入需要替换的字符或单词:')
- str_new = input('请输入新的单词或字符:')
- file_replace(file_name,str_old,str_new)
复制代码
运行之后其他都没问题,就是在输入yes之后,发现整个文件就被清空了。里面啥都没了,求教怎么回事啊。。 |
最佳答案
查看完整内容
找到原因了,统计次数那边没错,统计后没有把文件定位回文件头,而在文件尾,怎么读取都是空的
统计完次数后加上
file.seek(0, 0);
这一句就可以了
不过我这边把file.close()提前到filewrite = open(file_name,'w')之前
|