小归海 发表于 2020-3-22 11:59:31

求各位帮忙看看我这个程序有什么问题?

【小甲鱼第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


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

sunrise085 发表于 2020-3-22 12:25:33

你的程序第二行open文件时,写错了,file_name不应该加引号,这样你打开的就不是你输入文件名的文件了,而是一个名为file_name的文件。若你的在本地路径刚好有一个该名字的文件,则能打开,否则就会报错。
程序末尾处的open也有同样的问题

小归海 发表于 2020-3-22 17:03:08

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

我人傻了哈哈哈,谢谢!
页: [1]
查看完整版本: 求各位帮忙看看我这个程序有什么问题?