나는 다음과 같은 형식이 개 CSV 파일 데 :파이썬은 두 개의 CSV 파일을 비교하고 CSV 파일에 데이터를 추가
첫 번째는 outputTweetsDate.csv입니다 :
Here is some text;13.09.13 16:45
Here is more text;13.09.13 16:45
And yet another text;13.09.13 16:46
두 번째 파일이 apiSheet.csv입니다 :
13.09.13 16:46;89.56
13.09.13 16:45;90.40
나는이 두 파일을 비교하려면 두 날짜 값은 하나 개의 새로운 파일 (finalOutput.csv)에 텍스트와 데이터를 추가 일치하는 경우 :
|89.56|,|Here is some text|
|89.56|,|Here is more text|
|90.49|,|And yet another text|
이것은 내가 지금까지이 내 코드입니다 :
with open("apiSheet.csv", "U") as in_file1, open("outputTweetsDate.csv", "rb") as in_file2,open("finalOutput.csv", "wb") as out_file:
reader1 = csv.reader(in_file1,delimiter=';')
reader2 = csv.reader(in_file2,delimiter='|')
writer = csv.writer(out_file,delimiter='|')
for row1 in reader1:
for row2 in reader2:
if row1[0] == row2[1]:
data = [row1[1],row2[0]]
print data
writer.writerow(data)
내가 내 코드를 편집하고 지금까지 작동하지만, 제대로 여물 내 모든 코드를 반복하지 않습니다. 는 잠시 내 출력은 이것이다 :
|89.56|,|Here is some text|
|89.56|,|Here is more text|
그래서 그들이 같은 경우에도, 나에게 세 번째를 표시하지 않습니다. 그것은 파일을 통해 좋은 iterating되지 않는 것 같습니다.
감사합니다.
행이 시간순으로 정렬되어 있습니까? 또는 file1의 첫 번째 행에 해당하는 특정 날짜가 file2의 마지막 행에 있습니까 (아니면 전혀 표시되지 않습니까?) –
타임 스탬프가 고유하면 타임 스탬프를 키로 사용하여 두 개의 dicts를 만들고 병합합니다. –
@Ofir 예 행은 연대순으로 정렬됩니다 – Max