2014-03-26 2 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을 (를) 이해할 수 없습니까? 왜? f.write에서 파일 "attempt1.py", 라인 (12), ("나는 파일 % s \ 없음 지금 쓰고 있어요") % (f.name) :텍스트를 파일에 추가합니다. % s f.name

역 추적 (마지막으로 가장 최근에 호출) 형식 오류 : %에 대한 지원되지 않는 피연산자 유형 (들) : 내가 사용 "나는 파일 TEST.TXT 지금 쓰고 있어요"쓰고 싶은 'NoneType'와 'STR'

이 %의 당신이있어

답변

1

문자열을 올바르게 포맷하지 않으려면 다음 줄을 수정하십시오.

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

코드, % (f.name)은 유효한 Python이 아니기 때문에 괄호를 닫으면 형식이 지정되지 않은 문자열과 SyntaxError가 닫힙니다.

그런데 그런 종류의 서식이 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) 
관련 문제