2011-08-09 14 views
2

すべてのログファイルを1つのtarファイルに収集するスクリプトを作成しました。問題は、ソフトリンクのデータが含まれていないことです。逆参照フラグを使用しようとしましたが、Python 2.4.3では認識されません。Python 2.4でTarFileの参照解除フラグを使用するにはどうすればよいですか?

長さの制限があり、多くのログファイルをサポートしたいので、コマンドラインを使用できません。

user ~/Desktop]$python 
Python 2.4.3 (#1, Jun 11 2009, 14:09:37) 

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] on linux2 

>>> import tarfile 
>>> tarfile.TarFile('test.tar.gz', mode='w', dereference=True) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in ? 
TypeError: __init__() got an unexpected keyword argument 'dereference' 
>>> 
+1

最近のPythonバージョンを使用できませんか? 2.4はかなり古いです – MatToufoutu

+0

あなたの質問は? –

+0

私はまだあなたがコマンドラインを使用できない理由は分かりません –

答えて

3

Python 2.4 docsdereference = Trueに従ってください。 Python 2.3ではtarfileが追加されて以来サポートされているようです。

Posix以外のシステム(Windows)でない限り、間違っている必要があります。 dereference = Trueとあなたのコードとエラーを投稿して、それが何であるか教えてください。

また、ソフトリンクでは、私はあなたが意味すると仮定します記号リンク?これは、dereference = Trueが動作することができるためです。

編集:私はちょうどcode for tarfile on Python 2.4を見ました。 dereferenceのコンストラクタへのパラメータをサポートしていませんが、には実際に参照解除するために必要なコードがあるようです(source for Python 2.6をチェックしてください)。したがって、

import tarfile 
tf = tarfile.TarFile('test.tar.gz', mode='w') 
tf.dereference = True 

が動作するはずです。結果を更新してください。

+0

ありがとう@agf。はい、シンボリック、申し訳ありません。私はコードを追加しました – AYBABTU

+0

あなたは@アグー!出来た。 – AYBABTU

0

は、あなただけのtar-Tまたは--files-fromオプションを使用することができませんでしたか?

関連する問題