2014-03-26 152 views
0
import os 

def closed(x): 
     if f.closed == True: 
       return "closed" 
     else: 
       return "open" 

f = open("test.txt", "ab") 
print "Name of the file: ", f.name 
print "we just opened the file so the file is: ", closed(f) 
f.write("I am writing now to the file %s \n") % (f.name) 
f.close() 
print "now we typed f.close(), so it is: ", closed(f) 

它給我錯誤,並打印出test.txt%s,並不理解%s?爲什麼?將文本附加到文件。 %s f.name

回溯(最近通話最後一個): 文件 「attempt1.py」,第12行,在 f.write( 「我現在寫文件%s \ n」)%(f.name) 類型錯誤:對於不支持的%操作數類型(S):「NoneType」和「海峽」

我希望它寫「我現在正在寫的文件test.txt」使用%S

回答

1

你不正確地格式化字符串,修復此行:

f.write("I am writing now to the file %s \n" % f.name) 

在您的代碼,你關閉了括號,使得字符串未格式化並且帶有SyntaxError,因爲% (f.name)不是有效的Python。

順便說一句,這種格式化已被改進str.format()。事情是這樣的:

f.write("I am writing now to the file {} \n".format(f.name)) 
+0

十分感謝。有效! – user3454635

1

您%的打印外嘗試

f.write("I am writing now to the file %s \n" % f.name)