2013-05-02 42 views
0

的三列我一起工作的代碼是:的Python:寫入數據文件與整數

fout = open('expenses.0.col', 'w') 
for line in lines: 
    words = line.split() 
    amount = amountPaid(words) 
    num = nameMonth(words) 
    day = numberDay(words) 
    line1 = amount, num, day 
    fout.write(line1) 
fout.close() 

有,你不能看到,在行線從拉文件運行就好了。行內有100行。當編寫最後一段代碼時,目標是獲得100列三列,其中包含數值:數量,數量和日期。所有這三個值都是整數。

我看過類似的問題,例如[python]Writing a data file using numbers 1-10,我得到的錯誤和那個例子一樣。我的問題是將dataFile.write(「%s \ n」%line)應用於我的案例,每行有三個數字。應該是快速的1行代碼修復。

+3

那裏的答案完全解釋了你的問題。參數line1應該是一個字符串。從你的三個變量創建一個字符串,它應該工作。 – sashkello 2013-05-02 05:19:31

回答

0

在你的例子中,line1是一個元組(我假設函數amountPaid(), nameMonth(), numberDay()都返回一個整數或浮點數)。

你可以做兩兩件事之一:

  • 有這些函數返回的數字爲字符串值
  • 或轉換返回值的字符串即:amount = str(amountPaid(words))

一旦這些值字符串,你可以簡單地做:

line1 = amount, num, day, '\n' 
fout.write(''.join(line1)) 

希望幫助!

+0

完美的謝謝! – Joakim 2013-05-02 05:25:06

+0

'int(amountPaid(words))'不是轉換爲字符串。 – 2013-05-02 05:26:12

+0

哎呀!對不起,將會修復 – 2013-05-02 05:26:40

0

使用print語句/函數而不是寫入方法。

0
line1 = amount, num, day 
fout.write("{}\n".format("".join(str(x) for x in line1)))