2010-07-26 3 views
2

는이 같은 csv 파일을 여는 오전 :CSV 파이썬 질문

import csv 
reader = csv.reader(open("book1.csv", "rb")) 
for row in reader: 
    print row 

어떻게 다음의 log과와 3 열에서 값을 대체 할 수있는 새로운 CSV로 결과를 저장?

+1

무엇을 시도 했습니까? 새 파일을 만드는 방법을 알고 있습니까? 변경된 내용으로 새 파일을 만들려고 했습니까? 그 코드도 게시하십시오. –

+1

문서 및 자습서를 읽는 방법에 대해 알려주십시오. – SilentGhost

+2

첫 번째 질문 이후 31 분이 지났습니다. 물론 코드 작성을 도울 수있는 방법이 분명해야합니다. –

답변

4

좋아요?

>>> input = "1,2,3\n4,5,6\n7,8,9".splitlines() 
>>> reader=csv.reader(input) 
>>> for row in reader: 
...  row[2] = log(float(row[2])) 
...  print ','.join(map(str,row)) 
... 
1,2,1.09861228867 
4,5,1.79175946923 
7,8,2.19722457734 
0

당신은 파일에 대한 문을 사용하여 상황에 맞는 관리자 를 사용한다 - 청소기, 적은 코드, file.close() 문을 제거한다.

import csv 
import math 
with open('book1.csv', 'rb') as f1,open('book2.csv', 'wb') as f2: 
    reader = csv.reader(f1) 
    writer = csv.writer(f2) 
    for row in reader: 
     row[2] = str(math.log(float(row[2]))) 
     writer.writerow(row)