擅长:python、mysql、java
<p>在不知道<code>fileName</code>的值的情况下,这只是一个猜测,但我相信您的问题是您正在等待shell退出,但是shell会启动另一个进程来打开文件,而不是等待该进程退出。在</p>
<p>例如,如果尝试以这种方式打开Excel电子表格,shell将查找注册表并确定打开电子表格的方法是使用命令行标志运行Excel(如果尚未运行),以防止创建空白工作表,然后向其发送DDE命令,告诉它打开该工作表。然后shell退出,您的<code>wait</code>完成,但文件仍处于打开状态(甚至可能尚未打开)。在</p>
<p>如果您想等待完成,您至少需要运行打开文件的实际命令,而不依赖于shell的自动查找。如果应用程序已经在运行,这可能还不够,因为有些应用程序可能检测到一个现有实例,因此只有在应用程序尚未运行时,您的等待才有效。在</p>
<p>可能没有任何简单干净的方法来做你想做的事。我能建议的最好方法是,如果<code>os.remove()</code>调用失败,请使用轮询循环,休眠1秒,然后再试一次,但如果文件在<code>wait()</code>调用完成时尚未打开,则可能仍有问题。在</p>