我在Python中成功运行了这个脚本,但是IPython笔记本引发了异常。 可能是什么问题?
import os
from subprocess import call, Popen, PIPE, STDOUT
command = "java -cp \"C:\mallet-2.0.7\class;C:\mallet-2.0.7\lib\mallet-deps.jar\" cc.mallet.fst.SimpleTagger --train true --model-file nouncrf train.txt"
p = Popen(command, stdout=PIPE, stderr=STDOUT, shell = True)
for line in p.stdout:
print line
Exception in thread "main" java.io.FileNotFoundException: train.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at cc.mallet.fst.SimpleTagger.main(SimpleTagger.java:504)
答案 0 :(得分:0)
显然这个问题根本与Python无关,因为它是Java异常,而不是Python异常。最有可能的是,在当前目录中查找文件(train.txt
)。在Python中运行脚本时,当前目录可能与IPython中的目录不同。 Java程序能够接受绝对文件路径吗?如果是,您可以在Java程序的命令行中指定绝对路径。