1

此代码有效。我在一个单元测试中使用它,其中快速创建和销毁约 100 个文件和文件夹。

如果我取出 sleep() 语句,则会收到一系列 Windows 错误,例如 Directory 不存在错误和 Directory Permissions 错误。

我对包含睡眠信息感到尴尬——这似乎是一个相当丑陋的“黑客”。显然,在我的目标系统上,我不知道 sleep(1) 是正确的值。什么是不依赖于任意一秒延迟的正确成人解决方案(最终系统有时会负载很重)?

    def removeDirectoryBranch(myPath):
        # delete a directory path and the files/folders in that directory
        sleep(1) # give the OS time to sort itself out
        for root, dirs, files in walk(myPath, topdown=False):
            # safety check removed for for this question
            # limits the scope of the function
            for name in files:
                remove(join(root, name))
            for name in dirs:
                rmdir(join(root, name))
        rmdir(myPath)

在 Windows 7 上运行的 Python 3.3(使用 Eclipse 和 PyDev)

前面的代码在 unittest 类的“teardown”方法中。所有文件都正确打开和关闭(在 try/except/finish 结构中)

尽管 unitttest 每次都以相同的方式运行(大多数情况下它不需要睡眠),但问题是随机发生的。

4

0 回答 0