Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Windows7下的片状文件删除?_Python_Windows 7 - Fatal编程技术网

Python Windows7下的片状文件删除?

Python Windows7下的片状文件删除?,python,windows-7,Python,Windows 7,我有一个Python测试套件,可以创建和删除许多临时文件。在Windows 7下,shutil.rmtree操作有时会失败(我的猜测是,您应该检查创建文件的代码,并确保它们在继续删除之前已明确关闭。如果代码中没有任何明显的内容,请下载一份,并观察文件系统上发生的情况。此工具将为您提供来自Windows的确切错误代码,并应消除some了解情况。我们在Windows上的shutil.rmtree也有类似的问题,特别是看起来像您的第一个堆栈跟踪。我们通过使用rmtree的异常处理程序解决了这个问题。有

我有一个Python测试套件,可以创建和删除许多临时文件。在Windows 7下,shutil.rmtree操作有时会失败(我的猜测是,您应该检查创建文件的代码,并确保它们在继续删除之前已明确关闭。如果代码中没有任何明显的内容,请下载一份,并观察文件系统上发生的情况。此工具将为您提供来自Windows的确切错误代码,并应消除some了解情况。

我们在Windows上的shutil.rmtree也有类似的问题,特别是看起来像您的第一个堆栈跟踪。我们通过使用rmtree的异常处理程序解决了这个问题。有关详细信息,请参阅。

这是一个很难解决的问题,但是您是否在后台运行任何扫描目录的操作?我正在考虑防病毒/备份(可能Windows 7内置了类似的东西?我不知道)。我在从TortoiseSVN启动的TSVNCache.exe进程中删除/移动文件时遇到了偶尔的小故障——似乎它会监视目录的更改,然后可能会打开目录以扫描文件。

只是一个想法,但如果测试行为(创建和删除大量临时文件)不是应用程序实际执行的典型操作,也许您可以将这些测试文件操作移动到(c)StringIO,并保留一套功能测试,以练习应用程序的实际文件创建/删除行为

这样,您就可以确保应用程序正常运行,而不会带来与应用程序无关的额外复杂性。

系统无法找到指定的路径:“如果路径对于Windows来说太长(260个字符),则会间歇性出现错误。”。自动任务通常使用相对引用创建文件夹层次结构,这些引用生成的完全限定路径长度超过260个字符。任何试图使用完全限定路径删除这些文件夹的脚本都将失败


我构建了一个使用相对路径引用的快速解决方案,但没有提供通用代码解决方案,只是警告您,提供的优秀答案可能对您没有帮助。

我在shutil.rmtree命令中遇到了同样的问题,这个问题可能是由特殊文件名引起的(例如:其他国家/地区语言:ПцМ/Ö)

请使用以下格式删除所需的目录:

import shutil

shutil.rmtree(os.path.join("<folder_name>").decode('ascii'))
导入shutil
rmtree(os.path.join(“”.decode('ascii'))

享受吧!

这是个好主意,我会研究一下,但它如何解释“找不到指定的路径”错误?这些似乎是rmtree在删除树后试图删除它的错误?你不认为这不是Process Explorer吗?奇怪的是,如果我只是提供了一个onerror函数来重试操作,问题似乎就停止了。这可能支持你关于时间问题的想法。我喜欢这一理论作为它发生的原因。在评论中Ryan Ginstrom在他的帖子中提到了搜索索引——这听起来像是另一个可能的候选。这正是提高代码可测试性的正确想法。在我的例子中,文件和目录对测试很重要。对。在这种情况下,请确保关闭搜索索引,“卷影复制”我还发现Windows7在从其他进程中删除文件时非常挑剔。
import shutil

shutil.rmtree(os.path.join("<folder_name>").decode('ascii'))