Blizzard0319 发表于 2021-3-1 20:20:11

第29讲课后习题第4题的问题

name=input('请输入文件名:')
old=input('请输入想要替换的字:')
new=input('你想把它替换成:')
f=open(name)
f_list=list(f.read())
count=0
for each in f_list:
    if each==old:
      count+=1
f.close()
choose=input('\n文件中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗(YES/NO):'%(count,old,old,new))
if choose == 'YES':
    content=[]
    f=open(name,'w')
    for each in f_list:
      if each==old:
            content.append(new)
      else:
            content.append(each)
    for each in content:
      f.write(each)
    f.close()
else:
    f.close()


目标功能是替换
我的代码哪里出问题了?都改了好几次了,还是运行不了

jackz007 发表于 2021-3-1 20:38:48

本帖最后由 jackz007 于 2021-3-1 20:41 编辑

name = input('请输入文件名:')
old = input('请输入想要替换的字:')
new = input('你想把它替换成:')
f = open(name)
f_list = list(f)
f . close()
count = 0
for each in f_list:
    c = 0
    c = each . find(old , c)
    while c <> -1:
      count += 1
      c = each . find(old , c + len(old))
choose = input('\n文件中共有%d个【%s】\n您确定要把所有的【%s】替换为【%s】吗(YES/NO):' % (count , old , old , new))
if choose == 'YES':
    f = open(name , 'w')
    for i in range(len(f_list)):
      f_list = f_list . replace(old , new):
    f . writelines(f_list)
    f . close()
页: [1]
查看完整版本: 第29讲课后习题第4题的问题