python新手,请问一下,为什么一调用函数,下面的for循环就不执行了

leiaoo 发布于 2017/03/14 19:11
阅读 239
收藏 0

#!c:\python27
#_*_ coding: utf-8 _*_
import os, sys
while True:
    if len(sys.argv) <= 3:
        print "usage:file_replace.py old_text  new_text  filename"
        sys.exit()
    else:
        break
old_text = sys.argv[1]
new_text = sys.argv[2]
filename = sys.argv[3]

f = file(filename, 'r+')

def create_bak_file ():
    bak_file = file('.%s.bak' % filename, 'w')
    bak_file.write (f.read())
    bak_file.close()
    return None

if not os.path.isfile('.%s.bak' % filename):
    create_bak_file ()
else:
    override_y_n = raw_input ('the bak file is exited!,if you want to override the bak file?(y/n):')
    if override_y_n == 'y':
        create_bak_file ()

for line in f:
    print'hahah'
    f.write(line.replace(old_text, new_text))

f.close()


当我把调用函数create_bak_file的语句去掉或者在提示时输入n,下面的for循环正常执行,只要一调用函数create_bak_file,下面的for循环就不执行了,for循环里的print语句也没有正常打印,如果放到for循环外面,就可以

新手+菜鸟,请教大神指导,感谢

加载中
0
xiaoaiwhc1
xiaoaiwhc1

f走到到末尾了, for循环没有执行

0
leiaoo
leiaoo

引用来自“xiaoaiwhc1”的评论

f走到到末尾了, for循环没有执行

这个,怎么解决啊,我刚学,是个小白

返回顶部
顶部