我正在使用python脚本进行一些迭代。我所做的就是这样。在
Python执行副总裁变量.in.1输出输出.1
这里1是迭代次数。在
现在,它使用变量文件中的值调用可执行文件,然后将可执行文件的输出放入输出文件中。不幸的是,我看到的是,反复调用可执行文件需要更多的时间。在
相反,我想做的是启动可执行文件一次,然后使用相同的语法(即python)将变量发送到可执行文件执行副总裁变量.in.1输出输出.1。在
我需要保留这个语法是因为变量文件是在外部生成的。我无法控制它,但一旦它被生成,我需要使用可执行文件来创建输出文件,然后需要以所需的格式进行解析。在
编辑:我将尝试用一种简化的方式来表示我正在做的事情,因为这是一个很大的代码。在
import sys
import os
import parseinput
import parseoutput
s1=sys.argv[1];s2=sys.argv[2]
op=open(s1,'r');inp=op.readlines();op.close()
variableswrite=parseinput.parseinput(inp)
op=open('pass.dat','w');op.write(variableswrite);op.close()
os.sytem('execute < pass.dat')
op=open('executeout.dat','r');out=op.readlines();op.close()
outwrite=parseoutput.parseoutput(out)
op=open(s2,'w');op.write(outwrite);op.close()
这是一个非常粗糙的方式来显示我在做什么。如果这是密码执行副总裁,每次我用python运行它执行副总裁变量.in.1结果。输出.1,我将使用可执行文件获取一个输出文件,该文件将被解析以获得输出文件。在
相反,如果我可以保持“execute”可执行文件的打开状态,并且仍然使用python执行副总裁变量.in.1结果。输出.1如果脚本将解析输入文件,然后将其发送到打开的可执行文件,然后由该可执行文件创建输出,则我的工作将更快、更高效。在
有没有一种方法可以扩充
exec.py
以获得任意数量的输入/输出文件名对?在如果是,则调用将如下所示:
现在,假设你有1000对这样的对。您可以将这个范围划分为20组,每组50对(例如)。并使用不同的组调用脚本20次(并发):
^{pr2}$这里需要的是“subprocess”模块,它使启动进程和连接其输入和输出管道变得简单
为了避免阻塞,只需在不同的进程中进行输入和输出。你可以用“os.fork操作系统“:
或者您可以将输入和输出代码拆分为两个文件,然后使用类似于“main”:
^{pr2}$这只是一个很长的说法
{pr/>3}$你想要的是
1)创建一个一直在运行的守护进程
2)给出监控文件或文件夹列表作为参数
3)使用inotify检测新的传入文件
http://pyinotify.sourceforge.net/
4)每次inotify发出信号时,通过调用该方法来触发守护进程内部的转换
如果语法有“python”命令,就不能保持语法不变,因为这自然会每次重新启动解释器。在
相关问题 更多 >
编程相关推荐