2014-11-24 41 views
0

我有Python设置创建并打开一个txt文件[见Open document with default application in Python],然后我手动进行一些更改和关闭。在这个完成后,我想让Python打开下一个txt文件。我现在已经设置好了,这样python就会等待我关闭文件后键入的一个关键命令,然后在该关键字上打开下一个要编辑的关键命令。阻塞,直到文件被关闭python

是否有办法让Python在前一个文件关闭后立即打开下一个文档(即跳过python等待被点击的键)。 ...我会重复这个任务大约10万次,因此每一秒钟点击的一小部分都会非常快速地完成。我基本上想要摆脱与python的接口,并且只要前一个关闭就自动出现下一个txt文件。

我不知道该怎么做,但一直在等待,直到先前的文件被关闭(不确定是否有一种方法可以告诉python是否能够分辨文件打开/关闭)。

仅供参考,我使用python2.7和Windows。

+0

这是高度特定于应用程序的。在大多数情况下,您可以等到过程死亡。 – simonzack 2014-11-24 04:03:24

+1

您可以检查文件的修改时间:http://stackoverflow.com/a/237084/3651800 – 2014-11-24 04:03:48

+1

您正在手动编辑100,000个文件?让人惊讶。 – 2014-11-24 04:08:30

回答

3

使用子模块的Popen Constructor打开该文件。它将使用wait()方法返回一个对象,该方法将阻塞,直到文件关闭。

0

如何像:

for fname in list_of_files: 
    with open(fname, mode) as f: 
     # do stuff 
+1

我认为他真的要求如何阻止,直到他关闭“#do stuff”块中的文件。 – 2014-11-24 04:09:15

0

在利益的情况下,使用修改时间的方法下面的代码工作:

os.startfile(text_file_name)   
    modified = time.ctime(os.path.getmtime(text_file_name)) 
created = time.ctime(os.path.getctime(text_file_name)) 

    while modified == created: 
    sleep(0.5)  
modified = time.ctime(os.path.getmtime(text_file_name)) 
    print modified 

    print "moving on to next item" 
    sleep(0.5) 
sys.stdout.flush() 

Athough我想我会用Popen构造的未来,因为这似乎做的更优雅的方式(和还允许在没有需要编辑的情况下关闭文件的情况)。