-1
ユーザー名と日付に従って解析する必要がある数百のテキストファイルがあります。私はそのようなリストにテキストファイルに有用なデータを入れてみました:ネストリストのソートとグループ化クラスオブジェクトの構成
[
['[email protected]', '34209809' '1434546354', '2016-07-18 00:20:58'],
['[email protected]', '234534345', '09402380',, '2016-07-18 00:20:03'],
['[email protected]', '345315531','1098098098', '2016-07-18 02:40:00'],
['[email protected]', '345431353', '231200023', '2016-07-18 15:45:49'],
['[email protected]', '23232424', '234809809', '2016-07-18 20:45:40']
]
出力は以下のようになりますので、しかし、私はユーザ名によって日時およびグループに応じてそれらを並べ替えしたいと思います:
[
['[email protected]', '23232424', '234809809', '2016-07-18 20:45:40'],
['[email protected]', '34209809' '1434546354', '2016-07-18 00:20:58'],
['[email protected]', '345431353', '231200023', '2016-07-18 15:45:49'],
['[email protected]', '234534345', '09402380',, '2016-07-18 00:20:03'],
['[email protected]', '345315531','1098098098', '2016-07-18 02:40:00']
]
import glob
from operator import itemgetter
from itertools import groupby
def read_large_file(filename):
matrix=[]
global username
username=[]
for myfile in glob.glob(filename):
infile = open(myfile, "r")
for row in infile:
row=row.strip()
array=row.split(';')
username.append(array[9])
matrix.append(cdr(array[9],array[17],array[18],array[8]))
return matrix
class cdr(object):
def__init__(self,username,total_seconds_since_start,download_bytes,date_time):
self.username=username
self.total_seconds_since_start=total_seconds_since_start
self.download_bytes=download_bytes
self.date_time=date_time
def GroupByUsername(matrix):
new_matrix=[]
new_matrix=groupby(matrix, itemgetter(0))
return new_matrix
matrix=read_large_file('C:\Users\ceren\.spyder2/test/*')
matrix_new=GroupByUsername(matrix)
が、私は、このリンクでソリューションを使用しようとしました:: ここに
が私のコードであるSorting and Grouping Nested Lists in Pythonは、しかし、私はこれらのエラーを持っている:
'cdr' object does not support indexing
'cdr' object is not iterable
ありがとう、私はこのエラーが発生しました:TypeError:()は正確に1つの引数(2与えられます)を受け取ります –
CerenH
ああ、申し訳ありません、私は 'key ='を忘れました。私はそれを修正しました - それを試してみてください:) – Karin
まだ:TypeError: 'cdr'オブジェクトは、インデックスをサポートしていません、私はPythonはリストのインデックスにクラスのオブジェクトを置くことはできないと思う。 – CerenH