2012-02-05 2 views
1

윈도우 7, 파이썬을 폐쇄하지 :파일 오류 O/2.7.2</p> <p>다음 실행 승

from subprocess import call 

f = open("file1","w") 
f.writelines("sigh") 
f.flush 
f.close 
call("copy file1 + file2 file3", shell=True) 

그러나, 파일 3은 파일 2의 내용이 포함되어 있습니다. file1 및 file2 이름은 모두 Windows의 경우와 같이 에코되지만 파일 1은 사본이 호출 될 때 비어있는 것처럼 보입니다. 마치 file1이 완전히 쓰여지고 플러시되지 않은 것처럼 보입니다. 같은 파이썬 파일 내에서 예상대로 다음 실행을 반대 FILE1이 별도로 생성 된 경우 : 파이썬 newbieness 여기 비난하는 경우

from subprocess import call 
call("copy file1 + file2 file3", shell=True) 

죄송합니다. 모든 지원을위한 많은 thx.

f.flush() 
f.close() 

귀하의 코드는 문법적으로 유효하지만이 함수를 호출하지 않습니다

답변

7

당신은 괄호를 놓치고있어.

그 순서를 쓰기보다 파이썬 방법은 다음과 같습니다

with open("file1","w") as f: 
    f.write("sigh\n") # don't use writelines() for one lonely string 
call("copy file1 + file2 file3", shell=True) 

즉, with 블록의 끝에서 f을 자동으로 종료 (그리고 flush() 어쨌든 중복) 것입니다.

+0

/홍당무 감사합니다. – user1179088