1

私はPythonを学んでおり、Googleのクラスを見て始めています。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() に送信する前に、'{' とその他のいくつかを追加します。

出力として「xファイルがコピーされました」と表示されることを望んでいます。

Windows 8 を使用しています。

問題が何であるかについて何か考えはありますか?OSのせいでしょうか?それを修正する方法について何か考えはありますか?

ビデオはpython2.7を使用しており、コマンドモジュールがサブプロセスモジュールに置き換えられたpython3.2を使用しています。両方の getstatusoutput メソッドは同じですか?

4

1 に答える 1

1

ドキュメントには次のように書かれています: cmd は実際には次のように実行されます:

{ cmd ; } 2>&1

また、この機能getstatusoutput()は Windows ではなく UNIX で使用できます。

于 2013-07-30T03:21:40.833 に答える