【发布时间】:2021-12-02 08:14:32
【问题描述】:
我使用的是 Python 2.7.3。
我有一个以命令行方式运行tesseract 的函数。一切正常,现在我想在命令-l rus(表示俄语)中添加一个新参数。尽管这适用于我的命令行,但它似乎不适用于 Python。
命令行:
$ /usr/local/bin/tesseract /Users/anthony/Downloads/rus.png outfile -l rus && more outfile.txt
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
Полу-Милорд, полу-купец,
Полу-мудрец, полу-невежда,
Полу-подлец, но есть надежда,
Что будет полным наконец.
Python 函数
def ocr(self,path):
path = "/Users/anthony/Downloads/rus.png"
process = subprocess.Popen(['/usr/local/bin/tesseract', path,'outfile','-l rus'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = process.communicate()
print err
print out
with open('outfile.txt', 'r') as handle:
contents = handle.read()
os.remove(temp.name + '.txt')
os.remove(temp.name)
return contents, out
以上返回“HOIIY nony HOIIY nony Hony no ecTb HHJICXQRI 6y11e”,这表明-l rus 标志被忽略。
问题
如何将以下命令作为 python 子进程执行?
/usr/local/bin/tesseract /Users/anthony/Downloads/rus.png outfile -l rus
【问题讨论】:
-
你可能想要'-l'、'rus'、генерал-губернатор。
标签: python python-2.7 tesseract