変数を変数に分割する必要があります。あなたは行が1枚が欠けている、時々見ることができるように、しかしPythonはWebログから行を分割します
port11.annex1.naples.net [30:00:00:03] "GET /logos/small_gopher.gif HTTP/1.0" 200 935
port11.annex1.naples.net [30:00:00:03] "GET /icons/book.gif" 200 935
:ここ
は、2行の例です。
どうすればエラーが発生することなく分割できますか?現在
私が使用しています:
for x in log.readlines():
data = x.split(" ")
hostname = data[0]
time = data[1]
command = data[2]
resource = data[3]
version = data[4]
status = data[5]
size = data[6]
これは、エラーが発生します、いないすべての行が7「アイテム」
たぶん私は分割して、複数の区切り文字を使用する必要がありますを持っているので、しかし、私は良いを見つけることができませんその仕組み...
5つのコードがすべて存在するわけではありませんが、コードで何をしたいですか?最後の作品を返しますか?もしそうなら、 'data [-1]'はそのトリックを行います。 – numbermaniac
data [-1]は最初の行で '935'を返し、' 200'はdata [5]で返されたホスト名です。だから私は彼がいつも最後のアイテムを望んでいるとは思わない。 –
Maarten - データ[5]があなたが望むものを返す2行を投稿しました。誰かがこの質問に答えるためには、data [5]があなたが望むホスト名を得られない(例えばエラーを返す)行を投稿し、ホスト名がどこにあるかを決定するルールが何であるかを説明する必要がありますあなたの文字列/リスト(それはapparetly常にスペース区切りリストの5番目の項目ではないので) –