2014-04-08 2 views
0

파이썬을 많이 사용 해본 경험이 없으며 로그 파일을 읽으려고합니다. 지금까지 파일을 읽고 인쇄 할 수있었습니다. 파일을 읽고 파이썬의 다른 열로 나누어야합니다.

08 Apr 2014 00:00:31, 22.198, 5.444, 67.901 
08 Apr 2014 00:00:31, 33.198, 6.444, 54.901 
08 Apr 2014 00:00:31, 44.198, 5.444, 84.901 
08 Apr 2014 00:00:31, 55.198, 8.444, 94.901 

각 값

즉, 서로 다른 측정은 다음과 같습니다

infile = open("C:\file.log", "r") 
lines = infile.readlines() 
print lines 
print len(lines) 
infile.close() 

파일은 더블 가치와 예를 들어, 타임 스탬프가 포함되어 있습니다. 첫 번째 숫자는 타임 스탬프이고, 두 번째 숫자는 CPU 사용량입니다. 어떻게 이들을 읽고 다른 열에 각 열을 저장합니까 ??

+0

왜 dict을 만들지 말아야합니까? – PYPL

답변

2
r = csv.reader(open(filename)) 
dates = [] 
times = [] 
cpus = [] 
usages = [] 
for d, t, v1, v2 in r: 
    dates.append(d) 
    times.append(t) 
    cpus.append(float(v1) 
    usages.append(v2) 

희망 사항.

+0

감사합니다. 큰 도움이되었습니다. :) – user3216736

0

이것은 테이블을 읽는 기본 방법입니다. 그것은 하나의 리턴 값으로 끝나며 작성하기에 매우 짧습니다.

#create a list of keys for each data entry 
label_list = ["timestamp", "cpu_usage", "foo", "bar"] 
# make a container to hold the entries 
data = [] 
# using with/as is a safer way to open files 
with open("C:\file.log", "r") as file: 
    for line in file: 
     # split the element 
     value_list = line.split(", ") 
     # create a dictionary for each entry, with label_list as keys 
     data.append({}) 
     for value, label in zip(value_list , label_list): 
      data[-1][label] = value 
# whenever you want a group of items you can do this. ex) cpu_usage 
print [d["cpu_usage"] for d in data] 
+0

도이 방법을 시도 할 것입니다! 고맙습니다 :) – user3216736

관련 문제