longzhou520 发表于 2020-12-28 23:56:34

replace 那里为什么会出错

def replace_string(old, new):
    f1 = open(file_name, encoding = 'UTF-8')
    count = 0

    for each_line in f1:
      if old in each_line:
            count += 1

    print('文件%s中共有%s出【%s】\n' % (file_name, count, new))
    print('你确定要把所有的【%s】替换为【%s】' % (new, old))
    select = input('【YES/NO】:')
    if select == 'YES':
      f2 = open(file_name, 'w')
      f2.replace(old, new)
      f2.close()

    f1.close()

file_name = input('请输入文件名:')
old = input('请输入需要替换的单词或字符:')
new = input('请输入新的单词或字符:')
replace_string(old, new,)

jackz007 发表于 2020-12-29 00:36:43

本帖最后由 jackz007 于 2020-12-29 02:58 编辑

def replace_string(old , new):
    f1 = open(file_name, encoding = 'UTF-8')
    d = list(f1)                               # 把文件内容保存到列表 d 中,列表元素为文本行
    f1 . close()
    count = 0
    for each_line in d:
      b = each_line . find(old , 0)          # 调用字符串的方法搜索需要替换的字符串
      while b != -1:
            count += 1
            b = each_line . find(old , b + 1)# 调用字符串的方法搜索需要替换的字符串
    if count:
      print('文件 %s 中共有 %d 处【%s】\n' % (file_name, count, old))
      print('你确定要把所有的【%s】替换为【%s】' % (new , old))
      select = input('【YES/NO】:')
      if select == 'YES':
            f2 = open(file_name , 'w')
            for s in d:
                t = s . replace(old , new)   # 调用字符串的方法替换字符串
                f2 . write(t)                  # 把替换过后的字符串写入文件
            f2 . close()
    else:
      print('文件 %s 中没有找到【%s】' % (file_name , old))

file_name = input('请输入文件名:')
old = input('请输入需要替换的单词或字符:')
new = input('请输入新的单词或字符:')
replace_string(old , new)

z5560636 发表于 2020-12-29 08:45:45


def replace_string(old, new):
    f1 = open(file_name, encoding = 'UTF-8')
    t = list(f1)
    print(t)
    count = 0

    for s in t:
      if old in s:
            count += 1

    print('文件%s中共有%s出【%s】\n' % (file_name, count, old))
    print('你确定要把所有的【%s】替换为【%s】' % (new, old))
    select = input('【YES/NO】:')
    print(select == 'YES')
    if select == 'YES':
      f2 = open(file_name, 'w')
      for s in t:
            print("===========",s)
            f2.write(s.replace(old,new))

      f2.close()

    f1.close()

file_name = '123.txt'
old = "123"
new = "abc"
replace_string(old, new,)

qiaoqiaoqq 发表于 2020-12-29 15:02:55

感谢大佬
页: [1]
查看完整版本: replace 那里为什么会出错