2014-12-07 105 views
-1

我有一些Python代碼看起來是這樣的:腳本結束

try: 
    f = open("stuff.txt", "w") 
    f.write("Hello 1.\n") 
    f.write("How are you? 2.\n") 
    f.write("Goodbye 3.\n" 
    f.close() 

except IOError: 
    print "Error Message." 

<A lot more Python code here ...> 

但是,什麼情況是,它寫入stuff.txt很好,但後立即停止第一次write()調用。所以,stuff.txt會,如果你打開它,包含:

Hello 1. 

另一個奇怪的是,我所有的代碼之後,首先write()調用(東西從來沒有執行,因爲如果Python腳本只是終止,然後有在第一次寫入()。

如何阻止它終止這樣的嗎?

而且,它是有意義的寫入到一個文本文件中多行這種方式?所需的輸出將(在stuff.txt中):

Hello 1. 
How are you? 2. 
Goodbye 3. 

非常感謝。

+0

結束後f.write'關閉支架(「再見3. \ n」' – 2014-12-07 11:14:05

+0

你得到'錯誤Message.'印刷? – Umair 2014-12-07 11:14:30

回答

0

你缺少一個右括號,所以你得到一個錯誤每一次,你應該使用with打開文件:

with open("stuff.txt", "w") as f: # closes your file automatically 
    f.write("Hello 1.\n") 
    f.write("How are you? 2.\n") 
    f.write("Goodbye 3.\n") # missing closing paren 
1

沒有什麼不對的代碼,除了缺少一個右括號)在的f.write("Goodbye 3.\n"

>>> def test(): 
... try: 
...  f = open("stuff.txt", "w") 
...  f.write("Hello 1.\n") 
...  f.write("How are you? 2.\n") 
...  f.write("Goodbye 3.\n") 
...  f.close() 
... except IOError: 
...  print "Error Message." 
... print "Outside Try -- Catch. This works fine" 
... 
>>> test() 
Outside Try -- Catch. This works fine 
+0

這將拋出一個'語法error',而不是運行時間錯誤 – 2014-12-07 11:26:08

+1

@Bha rgavRao,這就是我想指出的。這段代碼沒有錯。錯誤在別的地方。 – 2014-12-07 11:28:18

+0

是的,這只是一個打字錯誤,而問我猜的問題。 – 2014-12-07 11:30:25