我试着调用一个shell脚本(段.sh)在python中。 在控制台生成正确结果的语法是:
> ./segment.sh ctb file.txt utf-8 0
可以看出,这个shell脚本需要一个文本文件作为输入。我要做的是打开文件并用python读取它的内容(稍后最好是从htmlpost表单),然后以某种方式将包含内容的变量传递给python子进程 打电话。在
以下功能不工作。但如果我只提供一个文件名,例如:
^{pr2}$然后,它就可以工作了,但是我想传递一个变量的输入。你能给我一些建议吗?在
def pySegment(text):
op = subprocess.Popen(["/bin/bash", "./segment.sh", "ctb", "utf-8", "0"],
stdout = subprocess.PIPE,
stdin = subprocess.PIPE,
stderr = subprocess.STDOUT,
)
results = op.communicate(input=text)[0]
return results
if __name__ == "__main__":
filename = "./file.txt"
text = open(filename).read()
result = pySegment(text)
print result
我建议使用named pipe:
命名管道将提供与文件相同的接口,而无需根据需要真正创建该文件。在
相关问题 更多 >
编程相关推荐