python os.system命令求助

我是个新手,用python写了一个命令:
os.system('zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld')
总是执行不过,但是在windows命令行上执行:
zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld
却是可以的。哪位高手帮忙看看,谢谢啊!

处理字符串的时候,反斜杠(‘\’)是转义符。比如\n是换行符,\t是制表符,\r是回车符等等……
而如果在一个字符串中想表示反斜杠本身,就需要先用转义符转义,就像这样——'\\'(没有外面的引号)。你的代码改成这样:
os.system('zip -qr D:\\Development\\Python\\Temp\\20110825212607.zip D:\\Development\\Python\\HelloWorld')
或者还有一种方法,就是字符串之前加上一个字母r,表示该字符串是原始字符串——此时的转义符就无效了,那么反斜杠就是它本来的意思:
os.system(r'zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld')

另外,说句题外话:
os.system启动一个进程后,会等待这个进程退出,再继续执行下面的代码
如果你想启动进程后,你的python程序就继续往下跑,不等待被启动的那个进程结束
可以使用subprocess模块下的Popen函数:
import subprocess
subprocess.Popen(r'zip -qr D:\Development\Python\Temp\20110825212607.zip D:\Development\Python\HelloWorld')追问

谢谢你的回复。我试了一下你提供的方法,还是不行。

追答

具体报什么错呢?最好把报错的内容说一下,有很高的参考价值的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-30
zip不是windows标准命令,所以可能不在搜索路径下。
你可以用下面的例子测试一下os.system是不是好着呢。
import os
os.system("notepad.exe c:\\boot.ini")
如果zip命令没有执行,那就加上绝对路径
如果zip命令执行了,但是结果不对,就把里面的斜杠都换成双斜杠。
第2个回答  2011-08-26
zip的目录是不是在是system32系统目录?不在的话就在zip前加上zip的绝对目录。本回答被提问者采纳
第3个回答  2011-08-25
看说明:
os.sys(cmd)
---------------其中cmd的解释为command
相似回答