免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4296 | 回复: 7
打印 上一主题 下一主题

subprocess的使用疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-23 22:22 |只看该作者 |倒序浏览
先说我的环境:
windows xp
python 2.5.2.2

疑问:
1,subprocess调用外部程序的时候,不能直接传入执行程序所在目录。下面的子句在我的系统上不能运行。
subprocess.Popen(["C:\Program Files\Mozilla Firefox\firefox.exe",'http://hi.baidu.com/redhatlinux10'])
2,当我把"C:\Program Files\Mozilla Firefox\firefox.exe"加入系统环境变量的PATH路径中后,下面的子句是可以运行的。
subprocess.Popen(["firefox",'http://hi.baidu.com/redhatlinux10'])
但是这里问题又出来了。哪个最终用户会,甚至是懂得修改PATH路径呢?
3,python应该是能操作注册表的吧,或许我可以从这条途径突击。
4,好像只要是我在命令提示符下不能运行的程序,subprocess就不能运行。

论坛徽章:
0
2 [报告]
发表于 2008-08-23 22:28 |只看该作者
试试subprocess.Popen(["C:\\Program Files\\Mozilla Firefox\\firefox.exe",'http://hi.baidu.com/redhatlinux10'])
看看是不是转义字符的问题。

论坛徽章:
0
3 [报告]
发表于 2008-08-23 22:52 |只看该作者
转义之后是可以正常运行了。
看样子我还得通过注册表查看firefox安装在哪里才行。

论坛徽章:
0
4 [报告]
发表于 2008-08-23 23:38 |只看该作者
如果只是调用默认浏览器的话,使用
import webbrowser
webbrowser.open(url)

就可以了,如果非要用火狐,那就只能找注册表了……

论坛徽章:
0
5 [报告]
发表于 2008-08-23 23:49 |只看该作者
原帖由 jjj137 于 2008-8-23 23:38 发表
如果只是调用默认浏览器的话,使用
import webbrowser
webbrowser.open(url)
就可以了,如果非要用火狐,那就只能找注册表了……

webbrowser 在 linux下也能使用吗?
ps:早先怎么就没有人告诉我这个这么便捷的工具呢?

[ 本帖最后由 War3Gamer 于 2008-8-23 23:54 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-08-23 23:53 |只看该作者
应该是通用的吧……没有试过……
你可以看一下源码。

论坛徽章:
0
7 [报告]
发表于 2008-08-23 23:59 |只看该作者
原帖由 jjj137 于 2008-8-23 23:53 发表
应该是通用的吧……没有试过……
你可以看一下源码。

刚才看了一下webbrowser的文档,是通用的。

论坛徽章:
0
8 [报告]
发表于 2008-08-24 00:04 |只看该作者
windows 下有很多目录带空格,用 popen 的时候会产生问题。

webbrowser 模块在 linux 下可用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP