鱼C论坛

 找回密码
 立即注册
查看: 872|回复: 4

[已解决]第二十九讲动动手第四个,求助!

[复制链接]
发表于 2018-9-27 16:08:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def file_replace(file_name,rep_word,new_word):
        f_read = open(file_name)
        count = 0

        for each_line in f_read:
                if rep_word in each_line:
                        count = count + each_line.count(rep_word)

        decide = input(f'{file_name}文件中共有"{rep_word}"{count}个,您确定要将所有的{rep_word}替换为{new_word}吗?\\nYES/NO?')
       
        if decide in ['YES','Yes','yes']:
               
                for each_line in f_read:
                        each_line = each_line.replace(rep_word,new_word)
                       
                f_read.close()
       
file_name = input("请输入文件名:")
rep_word = input("请输入需要替换的内容:")
new_word = input("请输入新的内容:")
file_replace(file_name,rep_word,new_word)

题目要求:
编写一个程序,实现“全部替换”功能。

疑问:  为什么我这样直接修改打开后的内容会行不通?(运行没有错误,但是打开文件发现内容并没有变化.)
一定要创建一个新的文件覆盖,再写入吗?
最佳答案
2018-9-27 19:58:32
兄弟,因为open()默认打开是只读模式,不能写入,只能获取
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-27 16:49:14 | 显示全部楼层
你只运行了读取模式,
所以还得把改动写进去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-27 19:58:32 | 显示全部楼层    本楼为最佳答案   
兄弟,因为open()默认打开是只读模式,不能写入,只能获取
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-27 20:03:08 | 显示全部楼层
建议你这样做,就是打开两个文件,一个只读,一个只写,文件名字需要不一样!然后就是读一行,把一行的内容加入列表中,如果有要替换的字符就替换,再pop到写的里面
,如果没有替换的内容,直接pop到只写的文件里面,不占内存,也能随时可读可写,不然用r+  或者a+之类的模式容易出错。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-27 22:07:11 | 显示全部楼层
RIXO 发表于 2018-9-27 19:58
兄弟,因为open()默认打开是只读模式,不能写入,只能获取

了解,所以我需要加入 write
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-14 02:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表