0

Linux サーバーで tika を実行していますが、python (subprocess.Popen) を使用して実行したいと考えています。

ただし、root 以外のアクセス権があるため、ローカルの Java インストールしかありません。各セッションのJavaホームとパスを設定する必要があるたびに:

export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java

export PATH=$PATH:/usr/java/jdk1.5.0_07/bin

次に、Java ディレクトリから tika を実行し、出力をファイルに保存します。out_txt.txt

カール www.vit.org/downloads/doc/tariff.doc | java -jar tika-app-1.3.jar --text >out_txt.txt

したがって、Popen を使用して次のことを行う方法を知る必要があります。

  1. Popen を使用して Java のホームとパスを設定する
  2. Tika出力をファイルに書き込みますout_txt.txt
4

1 に答える 1

1

1) 次のことができます。

  • os.setenv('JAVA_HOME', '/usr/java/jdk1.5.0_07')beforeを使用するPopenと、すべての将来の呼び出しに対して環境変数が設定されます。またはのためにPATH

    os.environ['PATH'] += ":/usr/java/jdk1.5.0_07"
    
  • 環境辞書をPopenasに渡しますenv:

    environ = os.environ.copy()
    environ['JAVA_HOME'] = '/usr/java/jdk1.5.0_07'
    environ['PATH'] += ':/usr/java/jdk1.5.0_07/bin'
    subprocess.Popen(args, env=environ)
    

2)

  • Popen書き込み用にファイルを開き、 as stdout(オプションでstderr)に渡します。

    output = open(outfile, 'wb')
    subprocess.Popen(args, stdout=output, stderr=output)
    
  • に渡してシェルに任せshell=TrueますPopen

    Popen("curl www.vit.org/downloads/doc/tariff.doc | java -jar tika-app-1.3.jar --text >out_txt.txt", shell=True)
    
于 2013-04-12T00:29:03.130 に答える