Python:如何在" Return True"之后继续覆盖代码。

时间:2014-06-14 16:22:58

标签: python replace return continue

以下是基本功能:

CheckReady.txt文件中,可以有10

在读取1后,它应返回True,然后将1替换为0以完成重置

如果它显示为0,那么它将返回false。

以下是我的代码:

def CheckReady():
    s = open("CheckReady.txt").read()
    print "Ready= ",s
    if s == "1":
        print "ready"
        return True
        s = s.replace("1", "0");
        f = open ("TrakStarReady.txt",'w')
        f.write(s)
        print "Ready= ",s, "Reset Complete"
    elif s == "0":
        print "not ready"
        return False
    f.close()

以下是我的问题:

我知道在return True之后,代码将停止将1替换为0 ...我在编程方面真的很新...尝试多次,但不知道如何解决这个问题。

有人可以帮我解决这个问题并完成基本功能吗?

2 个答案:

答案 0 :(得分:0)

做你想做的一切,然后返回:

def CheckReady():
    with open("CheckReady.txt") as check:
        s = check.read()
    print "Ready= ",s
    if s == "1":
        print "ready"
        s = "0"
        with open("TrakStarReady.txt",'w') as trak:
            trak.write(s)
        print "Ready= ",s, "Reset Complete"
        return True
    else:
        print "not ready"
        return False

答案 1 :(得分:0)

您不需要打开CheckReady文件。而是将该文件用作"标记"。如果您尚未准备好,请将文件移至临时位置。准备好后,重命名。

以下是我如何改进它:

import os 

def CheckReady():
  if os.path.isfile('/my/path/ready.txt'):
    # the file exists. Reset the marker
    os.rename('/my/path/ready.txt', '/my/path/notready.txt')
    with open ("TrakStarReady.txt",'w'):
      f.write(1)
    return True
  else:
    print "not ready"
    return False