나는 로그 파일을 열고 특정 정보를 새로운 CSV 파일에 쓰고 그 안에있는 각 동작 사이의 시간차를 비교합니다. 로그 파일. 내가 겪고있는 문제는 첫 번째 작성 과정에서 닫힌 후에 새로운 CSV 파일에 시간차를 추가하는 방법을 찾아야한다는 것입니다. 이것은 내가 지금까지 그 부분을 가지고 있습니다.형식을 바꾸지 않고 CSV 파일에 행 추가하기 (파이썬)
final_file = open('FinalLogFile.csv', 'w')
temp_logfile = csv.reader(open('tempLogFile.csv', 'rb'), delimiter="\t")
fmt = '%Y-%m-%d %H:%M:%S.%f'
row_count = 0
#find the time between each action and write it to the new file
#transfer actions from temp file to final file
for row in temp_logfile:
time = (row[0] + " " + row[1])
timestamp = strptime(time, fmt)
current_value = mktime(timestamp)
row_count+=1
if row_count == 1:
previous_value = current_value
#print ("%s - %s" %(current_value, previous_value))
total_value = current_value - previous_value
final_file.write('%s, %s' %(row,total_value) + '\n')
previous_value = current_value
final_file.close()
#remove the temp logfile
rm_command = "rm ~/log_parsing/tempLogFile.csv"
os.system(rm_command)
이 지금은 각 행의 끝에서 시간을 추가하지 않습니다, 그러나, 형식은 원본과 완전히 다른이며 각 문자, 공간, 문자 및 숫자 사이에 쉼표의를 추가합니다. 임시 파일의 원래 형식을 유지하거나 새 파일을 만들지 않고 원래 임시 파일에 시간을 추가하는 방법이 있습니까?
도움 주셔서 감사합니다.
빠른 답변 응답! 방금 당신의 제안을 시도하고 "_csv.Error : sequence expected"이 오류가 발생했습니다. – user1186173
@ user1186173 : 제 잘못입니다. '.append()'는리스트 자체가 아닌'None'을 반환합니다. 예를 업데이트했습니다. – bernie
확실히 더 효과적 이었지만 지금은 실제로 다음 라인으로 넘어 가지 않습니다. – user1186173