python中os.system出错问题

一个困扰好久的问题,当引用os.system在shell中执行一个命令时,如果要使用的程序或命令路径有空格如"c:\ProgramFiles\notepad.exe",然... 一个困扰好久的问题,当引用os.system在shell中执行一个命令时,如果要使用的程序或命令路径有空格如"c:\Program Files\notepad.exe" ,然后参数路径中也有空格,如"c:\Program Files\1.txt",os.system就会出错。同样的问题os.execv等一系列函数也有

简单说来就是凡是诸如"c:\xxxx xxx\xxx.exe" "c:\xxx xxx\xxx.txt"这样的命令形式在os.system中都无法执行
具体代码如下:
-----------------------------------------------------------------
import os

cmd = r'"c:\Program Files\notepad.exe" "c:\Program Files\1.txt"'
os.system(cmd)

-------------------------------------------------------------------
同样:
--------------------------------------------------------------------
import os
os.execv(r'"C:\Program Files\Internet Explorer\iexplore.exe"',['foo',r'"c:\program files\1.html"'])

------------------------------------------------------------------
也无法执行

在查看了python标准库后发现os.system()是调用C中system()来执行,发现在C中也无法实现这种路径,无论怎么组合字符串,只要引用的命令有空格,后面的文件也含有空格就无法实现。
大家帮帮忙吧
展开
 我来答
ddtghost
2009-12-07 · TA获得超过482个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:573万
展开全部
import os
cmd=r'c:\"Program Files"\notepad.exe c:\Program Files\1.txt'
os.system(cmd)

注意点:cmd中的命令的路径出现空格需要用引号,后面的文件路径不需要引号。
glight99
2009-12-06 · TA获得超过889个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:228万
展开全部
可以这么写:
cmd = r'""c:\Program Files\notepad.exe""'
也就是把要调用的程序用两个双引号包起来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jidixuelang
2009-12-07 · 超过32用户采纳过TA的回答
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:0
展开全部
有空格的目录名用双引号括起来

另外windows下的斜线(\)要用双斜线(\\)
不然会被认为是转义字符标记

参考资料: http://www.pythoncool.com/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一猪之哀伤一
2009-12-06 · TA获得超过669个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:290万
展开全部
命令行的空格可以用'\'来转义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式