鱼C论坛

 找回密码
 立即注册
查看: 2176|回复: 2

[已解决]求各位帮忙看看我这个程序有什么问题?

[复制链接]
发表于 2020-3-22 11:59:31 | 显示全部楼层 |阅读模式

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

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

x
【小甲鱼第29课课后习题第四题-全部替换】

程序如下:
file_name = input ("请输入文件名:")
file = open('file_name','r')

old_word = input("请输入需要替换的单词或字符:")
new_word = input ("请输入新的单词或字符:")

file_list = list(file)

s = 0
for each_line in file_list :
    count = each_line.count(old_word)
    s = s + count
    print(each_line)

print ("文件%s中共有%d个'%s'字"%(file_name,s,old_word))
print("确定要把所有的'%s'字改为'%s'吗?"%(old_word,new_word))

answer = input ("【yes /no】:")

if 'y' in answer :
    for each_line in file_list :
        each_line.replace(old_word,new_word)

file.close()
new_file = open ('file_name','w')

new_file.writelines(file_list)
new_file.close()

文件如下:
明月几时有
把酒问青天
不知天上宫阙
今夕是何年

运行结果如下:
请输入文件名:something.txt
请输入需要替换的单词或字符:有
请输入新的单词或字符:没有
文件something.txt中共有0个'有'字
确定要把所有的'有'字改为'没有'吗?
【yes /no】:y


为什么系统没有找出来目标字符呢?

最佳答案
2020-3-22 12:25:33
你的程序第二行open文件时,写错了,file_name不应该加引号,这样你打开的就不是你输入文件名的文件了,而是一个名为file_name的文件。若你的在本地路径刚好有一个该名字的文件,则能打开,否则就会报错。
程序末尾处的open也有同样的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 12:25:33 | 显示全部楼层    本楼为最佳答案   
你的程序第二行open文件时,写错了,file_name不应该加引号,这样你打开的就不是你输入文件名的文件了,而是一个名为file_name的文件。若你的在本地路径刚好有一个该名字的文件,则能打开,否则就会报错。
程序末尾处的open也有同样的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 17:03:08 | 显示全部楼层
sunrise085 发表于 2020-3-22 12:25
你的程序第二行open文件时,写错了,file_name不应该加引号,这样你打开的就不是你输入文件名的文件了,而 ...

我人傻了哈哈哈,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 04:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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