2014-11-03 8 views
0
import filecmp 

user = 't' 
con = open(user + '.txt','a') 
new = open(user + 'newfile.txt','a') 
if filecmp.cmp(con, new) == True: 
    print('good') 
else: 
    print('bad') 

파일 t.txt와 tnewfile.txt는 모두 문자 w를 가지고 있습니다. 왜 TypeError가 발생합니까?왜 이런 오류가 발생합니까?

TypeError: coercing to Unicode: need string or buffer, file found 
+0

부수적으로, 파일을 읽고 싶다면'a' 모드로 파일을 여는 이유는 무엇입니까? 플랫폼에 따라 파일의 끝에서 즉시 시작될 수도 있고 매 작업마다 파일의 끝으로 다시 이동할 수도 있습니다 (어느 쪽이든, 각 파일의 마지막 0 바이트를 비교할 것임을 의미합니다. 매우 흥미 롭습니다.) 이것은 실제 문제가 아니지만 실제로 문제가 없다면 항상 '좋은'인쇄를 의미합니다. – abarnert

답변

3

filecmp.cmp()함수 이름, 즉 문자열 열리지 파일 오브젝트 파일 걸린다.

다음 작업을해야합니다 :

user = 't' 
con = user + '.txt' 
new = user + 'newfile.txt' 
if filecmp.cmp(con, new): 
    print('good') 
else: 
    print('bad') 

여기 == True를 사용할 필요가 없습니다 참고; 이는 완전히 중복되고 오류가 발생하기 쉽습니다.

+0

대단히 고맙습니다. 제 그룹과 저는 한동안 붙어있었습니다. –

관련 문제