免责声明:我是python的初学者,但有Drupal编程经验。
我有这个:
f = ['/path/1.jpg', '/path/2.jpg', '/path/3.jpg'] #less than 1500 files我需要这样做
call(['c:/program files/ABBYY FineReader 10/finereader.exe'] + f)但是,有一个32K字符的参数限制(http://stackoverflow.com/questions/2381241/what-is-the-subprocess-popen-max-length-of-the-args-parameter),所以我需要先删除/path。如何继续操作,允许.exe定位文件?
谢谢!
发布于 2012-03-17 13:02:47
您应该将cwd='/path/'添加到subprocess.call的args中。这会将工作目录更改为可执行文件的'/path/' (但请注意,它不是用于搜索可执行文件的,因此仍然提供您的绝对路径)。
然后,假设它们都在同一路径中,您可以使用:
import os
f = [os.path.basename(x) for x in f]发布于 2012-03-17 19:09:08
您似乎使用的是Windows。在这种情况下,您可以尝试指定一个可能由finereader.exe本身处理的通配符'*.jpg':
check_call(r'c:\path\to\finereader.exe *.jpg', cwd=r'c:\jpg\dir')https://stackoverflow.com/questions/9747408
复制相似问题