2017-12-22 12 views
0

file123.zipというファイルを解凍してzipfile.ZipFileと解凍すると、解凍されたファイルが既知のパスに保存されます。ただし、この解凍されたファイルの名前は完全にランダムです。この完全にランダムなファイル名はどうやって決めるのですか?または、解凍されたファイルの名前を制御する方法がありますか? 私はこれをPythonで実装しようとしています。解凍したファイルのファイル名を確認する

+0

解凍されたファイルは、解凍されたファイルと同じ名前ではありませんか? – DavidG

+0

いいえ、そうではありません。そして、私が言いたいことは、解凍されたファイル名は完全に恣意的で、ランダムではないということです。@mhawkeは以下のように言っています。 – iknowfrench

+0

@iknowfrench:その場合、あなたの問題を解決しない答えがありますか?独自のファイル名を選ぶことができ、ファイル名は 'namelist()'で利用可能です。 – mhawke

答えて

0

"random"ファイル名が任意であることを意味すると仮定します。

ZipFile.read()を使用すると、ファイルを解凍し、その内容をバイト列として返します。その文字列を指定した名前のファイルに書き込むことができます。

from zipfile import ZipFile 

with ZipFile('file123.zip') as zf: 
    for i, name in enumerate(zf.namelist()): 
     with open('outfile_{}'.format(i), 'wb') as f: 
      f.write(zf.read(name)) 

これは、アーカイブの各ファイルを現在のディレクトリのoutput_nという名前のファイルに書き込みます。アーカイブに含まれるファイルの名前は、ZipFile.namelist()で取得されます。私はファイル名を生成する簡単な方法としてenumerate()を使用しましたが、必要な命名規則に置き換えることができます。

0

ファイル名が完全にランダムである場合、最初にos.listdir()を使用して、特定のディレクトリ内のすべてのファイル名をチェックできます。今ではファイル名を知っていて、それを使って何でもできます:

詳細については、thisトピックを参照してください。

関連する問題