問題タブ [py7zlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 7z で圧縮されたテキスト ファイルから読み取るには?
7z圧縮されたcsv(テキスト)ファイルから(Python 2.7で)1行ずつ読み取りたいと思います。(大きな)ファイル全体を解凍するのではなく、行をストリーミングしたいのです。
私はpylzma.decompressobj()
失敗しました。データエラーが発生します。このコードはまだ行ごとに読み取っていないことに注意してください。
出力:
python - py7zlib を使用して 7z アーカイブを解凍すると、*** ValueError: 解凍中にデータ エラーが発生する
私のコードは次のとおりです (ここから: PyLZMA の使用方法の例)
私が得るエラーは次のとおりです。
私がテストしているアーカイブは、製造元の Web サイトからダウンロードした 7z で圧縮されたドライバーです。また、7zip を使用してテスト用の 7z アーカイブを作成しましたが、同じ結果が得られました。
python-2.7 - Linux に pylzma ライブラリをインストールするには?
pylzma ライブラリは、私が使用したい別のツールの要件です。私はPythonとプログラミングが初めてで、いくつか質問があります:
次のサイトから pylzma をダウンロードしてインストールする手順をすでに実行しました。https: //code.google.com/p/threadzip/wiki/InstallingPylzma
しかし、バイトコンパイルのpy7zlib部分で行き詰まります。
py7zlib をバイトコンパイルするにはどうすればよいですか?
著者ページhttp://www.joachim-bauch.de/projects/pylzma/のドキュメントを確認し、指定されたフォルダーに移動すると、次のファイルが表示されます。
/tmp/pylzma-0.4.6/build/lib.linux-i686-2.7 フォルダに次のように表示されます: py7lib.py py7zlib.pyc pylzma.so
しかし、著者のページに記載されている「py7zlib.pwd」はありませんが、元のページに記載されている「py7zlib.pyc」は表示されます。
このバイトコードをコンパイルする必要はありますか?
Pythonプロンプトで「py7libをインポート」すると、何も表示されず、フィードバックもエラーも表示されません。これが正しくインポートされているかどうか、およびこのライブラリが正しくインストールされているかどうかを確認するにはどうすればよいですか?
ご意見ありがとうございます。
python - py7zlib を使用して .7z アーカイブを開くとメモリ リークが発生する
py7zlibを使用して、.7z アーカイブに保存されているファイルを開いて読み取ろうとしています。これはできますが、メモリ リークが発生しているようです。py7zlib を使用して数百の .7z ファイルをスキャンした後、Python が MemoryError でクラッシュします。組み込みの zipfile ライブラリを使用して .zip ファイルに対して同等の操作を行う場合、この問題は発生しません。.7z ファイルを使用する私のプロセスは基本的に次のとおりです (指定された名前のアーカイブ内のサブファイルを探し、その内容を返します)。
.7z ファイル オブジェクトを閉じている場合、Archive7z オブジェクトが範囲外に渡されると、メモリ リークが発生する理由を知っている人はいますか? (zipfile ライブラリの ZipFile.close() のように) 従わなければならないクリーンアップまたはファイルを閉じる手順はありますか?
python - pysftp + py7zr 解凍がアーカイブでハングアップする
ちょっとしたコンテキスト: クライアントが 7-zip アーカイブをリモートの sftp サーバーに置いており、私はそれらを処理しています。
私の問題は、一部の 7-zip ファイルでプログラムがハングし、解凍機能が終了しないことですが、アーカイブのすべてのファイルがローカル サーバーにある (存在する) ことです。
ターミナルで ctrl+c でスタック トレースを取得できました。
【端末画面】[1][1]: https://i.stack.imgur.com/O62U4.png
私のコード:
この問題は、1000 個の 7zip アーカイブに対しておそらく 1 回発生します (ほとんどのアーカイブは 1 MB 未満です)。アーカイブの整合性を検証しようとしましたが、それらは有効です。私のデスクトップでは、py7zr はアーカイブのすべてのファイルをクラッシュ/ハングすることなく抽出できます。
おそらくsftp接続がハングの原因であると考えています。
ありがとう
- - 編集 - -
MartinPrikryl のフィードバックにより、ローカル コンピューターでスクリプト全体を実行しましたが、ハングしませんでした。サーバーがスクリプトを実行している特定のアーカイブでのみハングします。アーカイブが他のアーカイブよりもかなり大きいことに気付きました (~ 9mb)。ただし、サーバーには多くのディスク容量 (1 TB の空き容量)、4 GB RAM、4 CPU があるため、問題になることはありません。