2010-07-26 3 views
2

я открыть файл CSV, как это:CSV питона вопросы

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

как я могу заменить значение в колонке 3 с его log, а затем сохранить результат в новый файл CSV?

+1

Что вы пытаетесь? Вы знаете, как создать новый файл? Вы пробовали создать новый файл с изменениями в нем? Отправьте этот код, также, пожалуйста. –

+1

Как насчет того, чтобы вы читали документацию и учебник? – SilentGhost

+2

Прошло 31 минут с момента первого вопроса. Конечно, должно быть очевидно, как мы можем помочь писать код I__. –

ответ

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 
1

Эти ссылки могут помочь:

http://docs.python.org/library/csv.html#csv.writer

http://docs.python.org/tutorial/datastructures.html?highlight=array

Каждая строка возвращается на reader является массивом. Массивы в Python являются 0 на основе (так, чтобы получить доступ к третьей позиции в строке, вы будете использовать my_array[2])

That должны помочь вам на вашем пути.

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) 
Смежные вопросы