2013-07-30 33 views
1

我正在学习python,并且正在观看google类以开始使用。我在第三次作业中遇到了一些问题。我们应该从目录中找到特殊文件,并通过给命令行提供命令来复制或压缩它们。使用python for Windows命令提示符的子进程或命令模块

这是复制文件看起来该功能,如:

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方法增加了一个“{”和其他一些东西的然后将它发送到os.popen()。

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

我使用Windows 8

任何想法,问题是什么?难道是因为操作系统?有关如何解决它的任何想法?

视频使用python2.7,我使用python3.2,其中的命令模块被subprocess模块​​取代。 getstatusoutput方法都是一样的吗?

回答

0

Documentation说: CMD为实际运行为

{ cmd ; } 2>&1 

而且功能getstatusoutput()可用于UNIX Windows不支持。

+0

那么我怎样才能给窗口上的命令? – pdp1231

+0

尝试以下操作:'process = subprocess.Popen(cmd + params, shell = True,stdout = subprocess.PIPE,stderr = subprocess.STDOUT,close_fds = False)'并获取输出结果012 = .stdout.read()' – sgun