2016-03-26 5 views
-2

コンピュータログを持つファイルがあります。Pythonは、ログファイルのテキストではなくバイナリ文字列としてデータを読み込みます。

:私はメモ帳+ +でそれを開くと、最初の数行は次のようになり - 私は今、内容を見てみると

f = open("log_file.log") 
a = [] 
for i in f: 
    a.append(i) 

-

##################### 
[2015/07/03, 13:26:40.368, INFO, 00004588] Legacy mode. Epoch number not found. Allowing message. 
[2015/07/03, 13:26:40.368, INFO, 00004588] >>>AgentGetState() called. 
[2015/07/03, 13:26:40.368, INFO, 00004588] AgentGetState Returning 00000000.<<< 
[2015/07/03, 13:26:54.660, INFO, 00010404] Subject name = am4prdapp09.fc.core.windows.net 
[2015/07/03, 13:26:54.660, INFO, 00010404] Legacy mode. Epoch number not found. Allowing message. 
###################### 

今、私はそうのようなPythonでそれらを読みます

a[0] 

これは私が見たものである -

'\xff\xfe[\x002\x000\x001\x005\x00/\x000\x007\x00/\x000\x003\x00,\x00 \x001\x003\x00:\x002\x006\x00:\x004\x000\x00.\x003\x006\x008\x00,\x00 \x00 \x00I\x00N\x00F\x00O\x00,\x00 \x000\x000\x000\x000\x004\x005\x008\x008\x00]\x00 \x00 
\x00j\x00e\x00c\x00t\x00 \x00n\x00a\x00m\x00e\x00 \x00=\x00 \x00a\x00m\x004\x00p\x00r\x00d\x00a\x00p\x00p\x000\x009\x00.\x00f\x00c\x00.\x00c\x00o\x00r\x00e\x00.\x00w\x00i\x00n\x00d\x00o\x00w\x00s\x00.\x00n\x00e\x00t\x00\r\x00\n' 

私は何が欠けていますか?

+5

ファイルのエンコーディングは何ですか? – MaxNoe

+0

とあなたのpythonバージョン? –

+0

私にとってうまく動作します... 'a [0]' = '############ ' – Signal

答えて

2

試してみてください。

f = open("log_file.log", 'r') 
data = f.readlines() 
for i in data: 
    print i 
>>> line 
>>> ... 
>>> ... 
+0

'with open ... 'を使用してください。 – MaxNoe

+0

Pythonのファイルオブジェクトは、まずは反復可能です。 'for i in f'(またはもっと記述的に' for line in f')を行うべきです。 'readlines()'を最初に呼び出す唯一の理由は、すべてをメモリにフロントローディングするコストを食べたい場合です。 –

関連する問題