2015-09-26 20 views
5

7zの内容をどのように読み込んで保存できますか?私は、抽出したり、このようなアーカイブが、私は、私がだけにして砲撃し、ファイルを抽出します7Zを呼び出し、CMDPythonを使用して7zファイルの内容を読み取る方法

import subprocess 
import os 

source = 'filename.7z' 
directory = 'C:\Directory' 
pw = '123456' 
subprocess.call(r'"C:\Program Files (x86)\7-Zip\7z.exe" x '+source +' -o'+directory+' -p'+pw) 
+0

[Python - zipの代わりに7zipで圧縮する方法、コードを変更する方法](http://stackoverflow.com/questions/11466572/python-how-to-compress-with-7zip-instead-of- zip-code-changing) –

答えて

2

にファイルの内容をリストpythonで内容を読むことができないことができ、Pythonの2.7.9を使用します標準のファイルアクセス呼び出しを使用してそれらのファイルにアクセスすることができます(私はPythonを知らないが、ファイルにアクセスできる必要があります)。

Python内で直接7zアーカイブを見たい場合は、ライブラリを使用する必要があります。ここには1つしかありません:https://pypi.python.org/pypi/libarchive - 私が言ったように私はそれを保証することはできません - 私はPythonユーザーではありません - しかし、サードパーティのライブラリを使用することは、通常、すべての言語でかなり簡単です。

一般的に、7zサポートは限られているようです。別のフォーマット(zip/gzip)を使用することができれば、Pythonライブラリの範囲(およびサンプルコード)がより包括的であると思います。

希望に役立ちます。

+0

libarchiveを使用していただきありがとうございます –

7

libarchiveまたはpylzmaのいずれかを使用できます。 python3.3 +にアップグレードできる場合は、標準ライブラリにあるlzmaを使用できます。

+2

私はいつもpython 2.7.9を使用していますが、3.3+は標準ライブラリを持っていますので、ありがとうございます –

+15

lzmaは動作しません。 7z *のアーカイブ*では、1つのファイルのみ。 – bfontaine

+0

lzmaは正しいライブラリではありません。私はそれを動作させる時間を無駄にしました。 Downvote。 – shinzou