2012-03-21 83 views
0

我有一個數字列表,需要將它們全部放到文本文件中。我無法弄清楚如何打電話給每個項目並打印它們。我只知道如何將字符串寫入文本文件。將列表中的每個項目寫入文本文件

我需要計算每個項目並以某種方式使用範圍函數嗎?一定有更好的方法。我很堅持要開始。

f = open("numbers.txt", "r") 
numlist = [] 
for line in f: 
    numlist.extend([n for n in map(float, line.split()) if n > 0]) 
print numlist 
f.close() 

g = open("output.txt", "w") 
g.write(#writes each item in the list on its own line) 
g.close() 
+3

你能否將代碼包含到問題中而不是鏈接到* screenshot *? – 2012-03-21 18:05:13

+1

這是功課嗎? – 2012-03-21 18:08:38

+0

@RikPoggi明顯... – iCodeLikeImDrunk 2012-03-21 18:10:07

回答

2

或者使用字符串格式化

g = open('output.txt', 'w') 
for num in numlist: 
    g.write("%f\n" % num) 
g.close() 

或者你可以在你的列表中理解其更改爲字符串:

numlist.extend([str(n) for n in map(float, line.split()) if n > 0]) 
+0

有一個報價太多。這個擴展應該更好地使用genexpr,而不是列表理解。 – 2012-03-21 18:12:51

+0

是的,我編輯了報價。列表理解來自OPs代碼截圖。 – 2012-03-21 18:14:51

+2

這並不意味着它不能被改進(相反,它應該*被改進以幫助OP學習如何正確完成)。如果你想要轉換回字符串,你不需要首先映射到'float'。一個簡單的'numlist.extend(n代表line.split()如果float(n)> 0)'就足夠了。 – 2012-03-21 18:17:45

2

因爲它似乎是家庭作業,我只是要給一些指點:

  • Y您可以同時處理多個文件與一個with陳述,看一看:Python: open multiple files using 「with open」?input_file線(我會寫這一個給你)

    with open('numbers.txt') as input_file, open('output.txt', 'w') as output_file: 
    
  • 環行線。

  • strip()split()上的線和循環。
  • 檢查contintion:

    if float(num) > 0: 
    
  • 而且如果通過你的num + '\n'

+0

這非常有幫助。我們還沒有了解如何打開這兩個文件。但它使它更容易。謝謝!! – 2012-03-21 18:35:23

相關問題