OS.PATH.EXISTS返回假阳性

时间:2019-11-22 23:05:26

标签: python

我的代码有问题,这个问题是它一直告诉我文件不存在时已经存在。

这是代码

http://codepad.org/ENZDzGhz

该代码仅用于我的模拟游戏所使用的登录系统。而且If语句一直返回true,而不是为我创建帐户。

1 个答案:

答案 0 :(得分:0)

这不是答案。我实在受够了以至于无法在注释中发布代码段,而且对此一无所知。

您对我的answer发表评论后,我将删除此无人回答(任何主持人都比我做得还快)。

您有以下代码段

if(os.path.exists("{}.json".format(rUsername))):
            print(os.path.exists("{}.json".format(rUsername)))
            print("{}.json".format(rUsername))
            print("Account already exists!")
            return;

with open("{}.json".format(rUsername), "w+") as rUser:
       info = {
       "Username": rUsername,
       "Password": rPword
       }
       x = json.dump(info, rUser, indent=4);
       rUser.close()

作为一般建议,我建议不要多行“创建”文件名。 只需创建一次。这可能有助于避免由于错别字/ Unicode错误或类似错误而导致的一些愚蠢的错误。

只需尝试按照以下代码段查看打印语句是否对您有所帮助

        fname = "{}.json".format(rUsername)
        if os.path.exists(fname):
                    print("os.path.exists =", os.path.exists(fname)))
                    print("Account already exists! I found file", repr(fname))
                    print(repr(fname), "has a size of", os.path.getsize(fname), "bytes")
                    return

        with open(fname, "w") as rUser:
            info = {
                "Username": rUsername,
                "Password": rPword,
            }
            x = json.dump(info, rUser, indent=4)

        print(repr(fname), "has a size of", os.path.getsize(fname), "bytes")