鱼C论坛

 找回密码
 立即注册
查看: 3371|回复: 5

课后习题疑惑,在if中的for循环语句未执行,不是很理解。

[复制链接]
发表于 2016-9-20 13:57:11 | 显示全部楼层 |阅读模式

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

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

x
def file_replace():
    file_name = input('请输入文件名:')
    file = open(file_name,'r+')
    old_word = input('请输入要替换的单词或字符:')
    new_word = input('请输入新的单词或字符:')
    count = 0


    count = file.read().count(old_word)
    print('文件'+file_name+'中共有%d个%s' %(count, old_word))
    print('您确定要把所有的【%s】替换为【%s】吗?' % (old_word, new_word))
    order = input('【YES/NO】:')
    #print('order is %s' % order)
   
   
    if order == 'YES' or order == 'yes':
                content = []
                       for each_line in file:
                            print('under command')#加打印看是不是进入到了for循环

                            if old_word in each_line:
                                each_line = each_line.replace(old_word, new_word)
                            content.append[each_line]
                            #print('debug')
                            print(content)#打印下看content里面都是些什么东东
                           

            
        
        #file.close()
                file = open(file_name,'r+')
                file.writelines(content)#将修改后的内容写入文件
   
                    for each_line in file.readlines():#打印文件内容看看是否修改成功
                        print(each_line,end='')
        

    file.close()
        
   
file_replace()
这是小弟编写的将文件中某个字替换并打印出新文件的字符,想着是想打开文件,然后查找并打印出要替换的字有多少个,并提示用户是否确定修改,如果确定 的话,修改后打印,如果不替换,直接关闭文件。但是疑惑是为什么替换部分的for循环没有执行,没进入循环。在idle中用简短的代码试了下,是可以的,代码如图片所示,和文件中的代码逻辑一样。
请大家帮忙看看,谢谢。
QQ截图20160920135610.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-20 14:31:30 | 显示全部楼层
因为file已经在file.read()中读到文件尾了。
再for each_line in file:时已经为空,循环就不进行了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-20 14:31:34 | 显示全部楼层
又鼓捣了鼓捣,恍然大悟不是因为没进入for循环的问题,而是之前.readlines()之后已经偏移到文件末尾去了,当然什么都没有了,反正功能实现了,不晓得究竟是不是这样子,还是希望大家帮忙看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-20 15:19:06 | 显示全部楼层
冬雪雪冬 发表于 2016-9-20 14:31
因为file已经在file.read()中读到文件尾了。
再for each_line in file:时已经为空,循环就不进行了。

恩恩,确实是,版主大大回答问题,好荣耀。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-21 14:20:30 | 显示全部楼层
感谢楼主问题分享,虽然还没学到,不过早晚可能会遇到的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-23 13:46:33 | 显示全部楼层
人zai旅途 发表于 2016-9-21 14:20
感谢楼主问题分享,虽然还没学到,不过早晚可能会遇到的

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-22 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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