我们有一个工作在这里工作,输入文件由SAS创建。该输入文件然后由遗留应用程序读取,并且遗留应用程序创建结果。 SAS然后读取结果并对其进行总结。非程序员通常会逐一处理这些操作。所以这个人只是创建输入文件。他们知道何时完成,然后他们运行遗留应用程序,并知道何时完成。然后他们运行汇总程序。如何检查一个文件是否在python中的窗口上打开?
我有一种情况,我的老板想跑100个左右的变化。我可以访问共享网络驱动器的3台或4台计算机。这是我的计划:使用计算机A,我开始逐个创建100个输入文件。使用计算机B,我在每个输入文件上运行传统程序。输入准备就绪后,我想开始运行程序。因此,如果在计算机A上完成input1的创建,我想在计算机B上的input1上运行遗留应用程序,同时在计算机A上创建input2。我知道python最好,所以我可能会使用python将所有这些粘合在一起。
现在我知道我可以做很多事情,但我认为这种方法已经足够,并且可以让我暂时完成工作。我没有时间去设计和测试一个非常优雅的解决方案,它可以利用所有机器上的所有核心,或者使用数据库来帮助我同步所有这些。我喜欢这样的建议,,但我真的只想知道在python中是否有一种方法可以告诉网络驱动器上的文件是否可以通过任何计算机上的任何应用程序进行写入?如果没有,我可能会想出一个愚蠢的方式来创建一个工作完成的指示器 - 就像创建一个文件“doneA”,如果它存在,则意味着“input1”文件已完成。例如。我会向创建输入文件后创建指示器文件的sas程序添加一个步骤。
对不起,很长的解释,但我只是不希望你浪费你的时间提供替代解决方案,我可能无法实现。
我已阅读此question及其答复。我不认为我可以使用任何类似lsof b/c的文件,这些文件将在不同的计算机上打开。
我决定使用这种方法。到目前为止我还没有遇到任何问题。我的Python代码基本上是循环直到文件存在,然后做一些东西。我可能会更喜欢并将每个组件的信号传递给对方,但我可能永远不会重新使用此代码。谢谢! – oob 2010-11-13 21:26:07