繁体   English   中英

为什么Java重定向失败?

[英]Why does java redirect fail?

我在这里检查了类似的Java重定向问题,但是找不到解决我问题的方法。

我正在尝试在ubuntu 18.04中运行python 3.6脚本,该脚本通过bash脚本调用Java程序。

原始编码器确认问题出在“ tokenize_sent.sh”中包含的路径上,但是以下几个重定向测试产生了相同的错误。

tokenize_sent.sh脚本:

#!/usr/bin/env bash

java edu.stanford.nlp.process.DocumentPreprocessor ../tmp/in.txt > ../tmp/out.txt

Bash脚本位于此处:

Datasets/stanford-parser-full-2017-06-09/tokenize_sent.sh

好消息是python脚本/ bash正在将正确的文本文件写入项目目录中的../tmp/in.txt。

python脚本从项目目录运行,该目录包含所有必需的文件夹及其子文件夹,包括必需的模型和stanford解析器等。

数据集

推断

tmp(正确的in.txt写入此处,但out.txt失败)

SentenceChange_Read2Files_MASTER.py

我是python和java的新手。 希望这是对tokenize_sent.sh的快速修复。

任何帮助表示赞赏。


第68行的python片段,调用“ tokenize_sent.sh”:

NEWLINE = '<NEWLINE>'
def tokenize_sentences(text):
    open('tmp/in.txt', 'w').write(text.replace('\n\n', NEWLINE))
    os.system('Datasets/stanford-parser-full-2017-06-09/tokenize_sent.sh')
    tokens = open('tmp/out.txt').read().split('\n')
    print('Total tokens in dataset', len(tokens))

    return [token for token in tokens if len(token) > 0]

运行“ SentenceChange_Read2Files_MASTER.py”时出错

Datasets/stanford-parser-full-2017-06-09/tokenize_sent.sh: line 7: ../tmp/out.txt: No such file or directory

Traceback (most recent call last):
  File "SentenceChange_Read2Files_MASTER.py", line 162, in <module>
    changed = change_book(open(prefix + 'Jane Austen___Northanger 
Abbey.txt').read(), open(prefix + 'Bram Stoker___Dracula.txt').read())
File "SentenceChange_Read2Files_MASTER.py", line 90, in change_book
    toChangeSent = tokenize_sentences(toChange)
  File "SentenceChange_Read2Files_MASTER.py", line 68, in tokenize_sentences
    tokens = open('tmp/out.txt').read().split('\n')
FileNotFoundError: [Errno 2] No such file or directory: 'tmp/out.txt'

FileNotFoundError:[错误2]没有这样的文件或目录:'tmp / out.txt'

表示相对于您运行脚本的目录没有文件tmp/out.txt 所以,当你运行Datasets/stanford-parser-full-2017-06-09/tokenize_sent.sh 找里面的文件./Datasets/stanford-parser-full-2017-06-09而是.

解决方案是将cd放入所有路径都相对的目录中,或者(更好)创建一个不依赖相对路径(或相对路径显式传递给每个脚本的位置)的解决方案,但这不在这个答案的范围。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM