1

我正在学习 python 并正在观看谷歌课程以开始学习。我对第三个作业有一些问题。我们应该从目录中找到特殊文件,并通过向命令提示行发出命令来复制或压缩它们。

这是复制文件的函数的样子:

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() 之前,会在 cmd 中添加一个“{”和一些其他内容。

我希望看到一个“复制的 x 文件”作为输出。

我正在使用 Windows 8。

关于问题是什么的任何想法?会不会是操作系统的原因?关于如何解决它的任何想法?

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

4

1 回答 1

1

文档说: cmd 实际上运行为

{ cmd ; } 2>&1

该功能getstatusoutput()在 UNIX 上可用,而在 Windows 上可用。

于 2013-07-30T03:21:40.833 回答