月半三木 发表于 2021-7-5 15:22:05

代码运行报错

按照课后作业的代码自己敲了一遍代码, 结果运行报错了,报错内容如下
‘unicodeescape’ code can't decode byte in position 269-270:mailformed \N character escape
看报错的意思以为是没有\n,把‘\’改成‘\n’还是报错
我手敲代码如下:
def file_replace(file_name,rep_word,new_word):
    f_read=open(file_name)
    content=[]
    count=0
    for eachline in f_read:
      if rep_word in eachline:
            count=eachline.count(rep_word)#count感觉应该用这个
            eachline=eachline.replace(rep_word,new_word)
      content.append(eachline)
    decide=input('\n文件%s中共有%s个【%s】\n您确定要把所有的【%s】换成【%s】吗?\n【YES\NO】:' \
                     % (file_name,count,rep_word,rep_word,nem_word))
    if decide in ['yes','YES','Yes']:
            f_write=open(file_name,'w')
            f_write.writelines(content)
            f_write(close)
    f_read.close()
file_name=input('请输入文件名:')
rep_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单词或字符:')
file_replace(file_name,rep_word,new_word)

骚年¥学编程 发表于 2021-7-5 15:56:56

input('\n文件%s中共有%s个【%s】\n您确定要把所有的【%s】换成【%s】吗?\n【YES\NO】:' \       你看这段代码当中【YES\NO】 这个位置也存在一个斜杆你可以 改成\\

青出于蓝 发表于 2021-7-5 17:48:55

def file_replace(file_name,rep_word,new_word):
    f_read=open(file_name)
    content=[]
    count=0
    for eachline in f_read:
      if rep_word in eachline:
            count=eachline.count(rep_word)#count感觉应该用这个
            eachline=eachline.replace(rep_word,new_word)
      content.append(eachline)
    decide=input('\n文件%s中共有%s个【%s】\n您确定要把所有的【%s】换成【%s】吗?\n【YES\\NO】:'% (file_name,count,rep_word,rep_word,nem_word))
    if decide in ['yes','YES','Yes']:
            f_write=open(file_name,'w')
            f_write.writelines(content)
            f_write(close)
    f_read.close()
file_name=input('请输入文件名:')
rep_word=input('请输入需要替换的单词或字符:')
new_word=input('请输入新的单词或字符:')
file_replace(file_name,rep_word,new_word)
页: [1]
查看完整版本: 代码运行报错