我完全被文件和语言的复杂组合所困扰!问题:我的网络表单在 localhost(apache) 上启动了一个 python 脚本,作为 cgi 脚本。在这个 python 脚本中,我想执行一个批处理文件。这个批处理文件执行几个命令,我对它们进行了彻底的测试。
如果我在 python 解释器或 CMD 中执行以下 python 文件,它会执行 bat 文件。但是当我从 webform 中“启动”python 脚本时,它说它做到了,但没有结果,所以我猜问题的 cgi 部分有问题?!
这个过程很复杂,所以如果有人有更好的方法来做到这一点......请回复;)。我正在使用 Windows,所以有时这会让事情变得更加烦人。
我认为这不是脚本,因为我尝试过subprocess.call
,os.startfile
并且os.system
已经尝试过!它要么什么都不做,要么网页不断加载(无限循环)
Python脚本:
import os
from subprocess import Popen, PIPE
import subprocess
print "Content-type:text/html\r\n\r\n"
p = subprocess.Popen(["test.bat"], stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, error = p.communicate()
print out
print "DONE!"
bat文件:
@echo off
::Preprocess the datasets
CMD /C java weka.filters.unsupervised.attribute.StringToWordVector -b -i data_new.arff -o data_new_std.arff -r tweetin.arff -s tweetin_std.arff
:: Make predictions with incoming tweets
CMD /C java weka.classifiers.functions.SMO -T tweetin_std.arff -t data_new_std.arff -p 2 -c first > result.txt
感谢您的回复!!