首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >初学者:使用数百个参数的python subprocess.call

初学者:使用数百个参数的python subprocess.call
EN

Stack Overflow用户
提问于 2012-03-17 13:00:59
回答 2查看 562关注 0票数 2

免责声明:我是python的初学者,但有Drupal编程经验。

我有这个:

代码语言:javascript
运行
复制
f = ['/path/1.jpg', '/path/2.jpg', '/path/3.jpg'] #less than 1500 files

我需要这样做

代码语言:javascript
运行
复制
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定位文件?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-17 13:02:47

您应该将cwd='/path/'添加到subprocess.call的args中。这会将工作目录更改为可执行文件的'/path/' (但请注意,它不是用于搜索可执行文件的,因此仍然提供您的绝对路径)。

然后,假设它们都在同一路径中,您可以使用:

代码语言:javascript
运行
复制
import os
f = [os.path.basename(x) for x in f]
票数 1
EN

Stack Overflow用户

发布于 2012-03-17 19:09:08

您似乎使用的是Windows。在这种情况下,您可以尝试指定一个可能由finereader.exe本身处理的通配符'*.jpg'

代码语言:javascript
运行
复制
check_call(r'c:\path\to\finereader.exe *.jpg', cwd=r'c:\jpg\dir')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9747408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档