1

文字通り2週間、これに苦しんでいます。この .zip を解凍できません。標準のコマンドラインで動作させることができ、そこにあることがわかっているすべてが表示されるので、それが正しいことはわかっています。zip を解凍し、そのファイルの一部の名前を変更して別のフォルダーにコピーしようとしています。基本的なセットアップは次のとおりです。

import subprocess
cmd = ['7z', 'e', 'site']
sp = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)

そのインポートの後、私はそれを使用して解凍しようとします:

sp.communicate([cmd, 'r"C:\Users\boster\desktop\data1.zip"'])

if else セクションに移動しますが、解凍しないため、この時点を過ぎます。最後に到達してelseステートメントを返し、データを再度実行するように求められるため、次のように実行されることがわかっています。

if "sz + business_date" == name: 
    shutil.copy(sz%s) % business_date
    os.renames(sales.xls)
    shutil.copy(sc%s) % business_date
    os.renames(cosales.xls)
    shutil.copy(aj%s) % business_date
    os.renames(money.xls)
    shutil.copy(cc%s) % business_date
    os.renames(count.xls)
else:
    print "Repoll %s for %s" % (item, business_date)
    print "Once information is downloaded press enter."
    re_download = raw_input(" ")
    data_one()

私は business_date 部分のようなもののいくつかを省略しました。これは、else の変数としてそれを返すため、その情報を正しく取得していることがわかります。これが解凍されない理由がわかりません。助けてください。これで十分でない場合は、必要に応じてモジュール全体をアップロードします。

4

2 に答える 2

0

サブプロセスで 7zip 圧縮ファイルを使用したときに同様の問題が発生したため、別の方法で問題を解決しました。これは私のコードです、

def zip_files_in_special_path(rom_path, rom_name):
    pre_cwd = os.getcwd()
    os.chdir(rom_path)
    cmd_str = r'C:\7-Zip\7z a -tzip -r '+rom_name+' *'

    try:
        status = os.system(cmd_str)
        if status<=1:
            return True
        else:
            raise RunCmdError('run 7z to zip files failed!')
    finally:
        os.chdir(pre_cwd)

お役に立てれば幸いです。

于 2013-07-31T08:38:32.547 に答える