|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def RE(name,old_name,new_name):
f = open(name)
list1 = []
cont = f.read().count(old_name)
print('文件%s中共有%d个【%s】'%(name,cont,old_name))
print('您确定要把所有的【%s】替换为【%s】吗?'%(old_name,new_name))
for eachline in f:
eachline = eachline.replace(old_name,new_name)
list1.append(eachline)
temp = input('YSE/NO:')
if temp == 'YES':
f2 = open(name,'w')
f2.writelines(list1)
print(f.read())
f2.close()
f.close()
name = input('请输入文件名:')
old_name = input('请输入需要替换的单词或者字符:')
new_name = input('请输入新的单词或者字符:')
RE(name,old_name,new_name)
为什么我运行输入YES之后,就啥也没有了??
本帖最后由 Hoiste 于 2020-4-13 11:08 编辑
你在cont计算出现次数的时候用read()读完了文件,文件当前指针在末尾了,再遍历从末尾开始,所以什么都没有,你的列表其实也是空的,所以不要用read()或者重置一下文件指针,我改了你的方法用了前者,代码改了一下结构:
- def RE(name,old_name,new_name):
- f = open(name)
- list1 = []
- cont = 0
- for eachline in f:
- cont += eachline.count(old_name)
- eachline = eachline.replace(old_name,new_name)
- list1.append(eachline)
- print('文件%s中共有%d个【%s】'%(name,cont,old_name))
- print('您确定要把所有的【%s】替换为【%s】吗?'%(old_name,new_name))
- temp = input('YSE/NO:')
- if temp == 'YES':
- f2 = open(name,'w')
- f2.writelines(list1)
- print(f.read())
- f2.close()
- f.close()
-
- name = input('请输入文件名:')
- old_name = input('请输入需要替换的单词或者字符:')
- new_name = input('请输入新的单词或者字符:')
- RE(name,old_name,new_name)
复制代码
|
-
|