2014-01-22 20 views
0

我需要編寫一個輸出到電子表格的python程序。在僞代碼,程序看起來大致是這樣的:用電子表格編寫輸出的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 =必需的語法?


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

那麼,對於一個'返回filename'將跳過你的函數調用,所以你porbably不想這樣做。另外,請查看[csv模塊](http://docs.python.org/2/library/csv.html) –

回答

相關問題