我正在打开一个CSV文件是这样的:CSV蟒蛇问题
import csv
reader = csv.reader(open("book1.csv", "rb"))
for row in reader:
print row
我怎么能代替其log
,然后在第3列的值结果保存到一个新的CSV?
我正在打开一个CSV文件是这样的:CSV蟒蛇问题
import csv
reader = csv.reader(open("book1.csv", "rb"))
for row in reader:
print row
我怎么能代替其log
,然后在第3列的值结果保存到一个新的CSV?
是否这样?
>>> 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
这些链接可能帮助:
http://docs.python.org/library/csv.html#csv.writer
http://docs.python.org/tutorial/datastructures.html?highlight=array
通过reader
返回的每一行是一个数组。在Python阵列基于0(所以访问连续第三项,你可以使用my_array[2]
)
这应该帮助你对你的方式。
您应该使用情况管理器WITH声明的文件 - 更清洁,更少的代码,避免了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)
你有什么试过的?你知道如何创建一个新文件吗?你有没有尝试过创建一个新的文件,其中的变化?请发布该代码,也请。 – 2010-07-26 23:22:42
你如何阅读文档和教程? – SilentGhost 2010-07-26 23:23:11
第一个问题已经过了31分钟。当然,我们应该很清楚我们如何帮助我编写代码。 – 2010-07-26 23:24:50