如何向python子进程添加选项

2024-04-25 17:59:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python2.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函数

^{pr2}$

上面返回“hoiy nony hoiy nony Hony no ecTb HHJICXQRI 6y11e”,这表明-l rus标志被忽略。在

问题

如何将以下命令作为python子进程执行?在

/usr/local/bin/tesseract /Users/anthony/Downloads/rus.png outfile -l rus

Tags: 函数命令行命令binpngusrlocaldownloads
2条回答

您需要将'-l rus'参数拆分为两个独立的参数,以确保程序正确地解析了它:

process = subprocess.Popen(['/usr/local/bin/tesseract', path, 'outfile', '-l', 'rus'],
                           stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

为此,使用.split()可能会很方便:

^{pr2}$
process = subprocess.Popen('/usr/local/bin/tesseract '+path+' outfile -l rus', stdout=subprocess.PIPE, stderr=subprocess.STDOUT,shell=True)

您可以使用shell=True运行它。在

相关问题 更多 >

    热门问题