data.DataLoader
我正在通过使用if (newConfig &&
newConfig.options &&
newConfig.options.interaction &&
newConfig.options.interaction.applyFilteringOnGrid &&
newConfig.options.interaction.applyFilteringOnGrid.searchFilters) {
const gridFilters = Object.keys(newConfig.options.interaction.applyFilteringOnGrid.searchFilters);
for (let i = 0; i < gridFilters.length; i++) {
logger.log('Grid Filters used',
{gridfilter: `${gridFilters[i]} filter`});
}
}
触发from subprocess import Popen, PIPE
import glob
import time
file_list=glob.glob(r'C:\Tony\files\*.txt')
numFiles = len(file_list)
p = Popen([r"C:\Tony\prog.bat"], stdin=PIPE)
start_time = time.time()
for x in range(0,numFiles):
command = "run {" + file_list[x] + "} "
p.communicate(input=command)[0]
print("--- %s seconds ---" % (time.time() - start_time))
来启动程序。我的程序知道接受.bat
之类的命令,并且可以执行操作。
这对于第一次迭代很好用。但随后出现以下错误:
Popen
为什么文件被关闭?
答案 0 :(得分:2)
请阅读文档Popen.communicate
它等待进程终止。
请勿循环使用它。
您可以使用:
import subprocess
process = subprocess.Popen(["grep", "hello"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
process.stdin.write("hello\nhello world\nhella")
print process.communicate()[0]
process.stdin.close()