使用python的子进程或Command模块进行Windows命令提示符

时间:2013-07-30 03:10:17

标签: python command-line subprocess

我正在学习python,正在观看谷歌课程开始。我在第3次任务时遇到了一些问题。我们应该从目录中找到特殊文件,并通过向命令提示行发出命令来复制或压缩它们。

这就是复制文件的功能:

def copy(dir,todir):    
    filenames=os.listdir(dir)

    for file in filenames:
       cmd='copy'+' '+file+' '+todir 
       print(cmd)
       (status,output)=subprocess.getstatusoutput(cmd) 
         print(output)
    return

错误说

'{' not recognized as an internal or external command,operable program or batch file.

subprocess.getstatusoutput方法在将cmd发送到os.popen()之前向cmd添加“{”和其他一些东西。

我希望看到'x Files copied'作为输出。

我使用的是Windows 8。

知道问题是什么吗?可能是因为操作系统?有关如何修复它的想法吗?

视频使用python2.7,我使用的是python3.2,命令模块由子进程模块替换。两个getstatusoutput方法是否相同?

1 个答案:

答案 0 :(得分:0)

Documentation说: cmd实际上是以

运行的
{ cmd ; } 2>&1

并且函数getstatusoutput()在UNIX上不在Windows上可用。