在电子表格中编写带有输出的python程序

时间:2014-01-22 22:07:46

标签: python excel csv spreadsheet

我需要编写一个输出到电子表格的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

同样理想情况下,我可以在不同的数据文件夹上再次运行程序,稍后将这些结果添加到电子表格中。

我发现了其他问题herehere,还有一些问题,例如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

但是,如果我使用一组新数字再次运行它,它会覆盖旧数据。我想继续在电子表格中添加新行。我该怎么做?

2 个答案:

答案 0 :(得分:1)

我们'ab'代替'wb'。 'wb'将覆盖该文件。

查看http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files了解详情

答案 1 :(得分:0)

以下内容可能无法解决您的问题,但有一些Python软件包可以解决阅读和编写拼写问题的问题:Python Excel

虽然学习曲线可能有点过于陡峭。