我需要編寫一個輸出到電子表格的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
也非常,我將能夠在不同的再次運行程序數據文件的文件夾,然後將這些結果添加到電子表格中。
我發現這些其他問題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 =必需的語法?
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
但是,如果我有一組新的數字再次運行它,它會覆蓋舊數據。我想不斷向電子表格添加新行。我將如何做到這一點?
那麼,對於一個'返回filename'將跳過你的函數調用,所以你porbably不想這樣做。另外,請查看[csv模塊](http://docs.python.org/2/library/csv.html) –