我需要编写一个输出到电子表格的python程序。在伪代码中,程序看起来大致如下:
folder = 'User/Path/FolderName'
for file in folder:
return filename
functionA(file) #returns OutputA
functionB(file) #returns OutputB
functionC(file) #returns OutputC
这些函数已经用Python编写,所以我更喜欢留在Python中。理想情况下,输出将是一个电子表格(.csv,Excel,制表符分隔的txt,无论如何),看起来像这样:
FileName A B C
file1 OutputA1 OutputB1 OutputC1
file2 OutputA2 OutputB2 OutputC2
同样理想情况下,我可以在不同的数据文件夹上再次运行程序,稍后将这些结果添加到电子表格中。
我发现了其他问题here和here,还有一些问题,例如Pyspread,但我不确定如何处理我的问题。
所以看完csv包之后,我想我会做这样的事情:
import csv
with open('data.csv', 'wb') as data:
datafile = csv.writer(data, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for file in folder:
datafile.writerow(file, functionA(file), functionB(file), functionC(file))
为了清楚起见,“wb”意味着我可以写入文件,对吗?另外,quotechar =和quoting = required语法是什么?
import csv
numbers = [1,2,3,4]
def functionA(x):
return x + 2
def functionB(x):
return x * 3
def functionC(x):
return x - 7
with open('data.csv', 'wb') as data:
datafile = csv.writer(data, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for n in numbers:
a = functionA(n)
b = functionB(n)
c = functionC(n)
datafile.writerow([n, a, b, c])
这就是我所期望的,即把它放到csv文件中:
1 3 3 -6
2 4 6 -5
3 5 9 -4
4 6 12 -3
但是,如果我使用一组新数字再次运行它,它会覆盖旧数据。我想继续在电子表格中添加新行。我该怎么做?
答案 0 :(得分:1)
查看http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files了解详情
答案 1 :(得分:0)
以下内容可能无法解决您的问题,但有一些Python软件包可以解决阅读和编写拼写问题的问题:Python Excel
虽然学习曲线可能有点过于陡峭。