洋si子 发表于 2020-7-15 10:35:50

29课作业 替换

def replace_file_word(file_name,old_word,new_word):
    f=open(file_name)
    count=0
    concent=[]
    for each_line in f:
      if old_word in each_line:
            count+=each_line.count(old_word)#小甲鱼这里的是’count=each_line.count(old_word)‘然后每次运行显示都是'1'
            each_line=each_line.replace(old_word,new_word)
      concent.append(each_line)#小甲鱼这里是’concent=concent.append(each_line)‘,然后每次报错NoneType
      #else:
         # print('您要替换的词不存在')


    decide=input('\n文件%s中%s共出现%d次,是否用%s替换%s【yes/no】:'%(file_name,old_word,count,new_word,old_word))
    if decide in 'yes,Yes,YES,yES,yEs,yeS':
      file_write=open(file_name,'w')
      file_write.writelines(concent)
      file_write.close()
    else:
      print('文件不改变')
    f.close()

file_name=input('请输入文件名【路径】:')
old_word=input('请输入被替换的词:')
new_word=input('请输入要替换的新词:')
replace_file_word(file_name,old_word,new_word)







后来经过百度并且加修改能够完美运行,每次显示‘1’是因为计数记的是每一行将要替换词的次数并不是文件中所有行中要替换词的次数,报错是因为append会修改concent本身,并且返回None。不能把返回值再赋值给concent
页: [1]
查看完整版本: 29课作业 替换