파일에서 데이터를 열고 쓰는 동안 Python의 동작에 대한 질문이 있습니다. 몇 시간 동안 실행되도록 만들어진 큰 코드가 있으며 ASCII 파일로 텍스트를 쓰는 작업이 필요합니다. 이 코드는 with open
메서드를 사용하며 프로그램이 실행되는 동안 파일을 열어 두었습니다. 때로는 프로그램 실행을 중지해야하므로 Process finished with exit code -1
종료 상태가됩니다.파일에 쓰는 동안의 이상한 동작
나를 괴롭히는 것은 코드가 실행 중일 때 텍스트가 ASCII 파일로 작성되었다는 확인을 받지만 코드를 중지하면 파일이 비어있는 것입니다.
import time
# Create the .txt files
with open('D:/Stuff/test1.txt', 'w') as write1:
pass
with open('D:/Stuff/test2.txt', 'w') as write2:
pass
# Write some text into the.txt files
# Case 1. The code runs until the end
with open ('D:/Stuff/test1.txt', 'a') as infile1:
a = range(1, 50, 1)
infile1.write(str(a))
print "Writing completed!"
# Case 2. I stop the execution manually. I use time.sleep to be able to stop it in this example
with open ('D:/Stuff/test2.txt', 'a') as infile2:
b = range(1, 50, 1)
infile2.write(str(b))
print "Writing completed!"
print "Start sleep"
time.sleep(10)
<< At this line I end the script manually>>
print "End sleep"
무엇 발생하는 사례 1, 텍스트가 파일에 기록되어 있지만, 경우 2, 내가 그들에게 빈 얻을 수 있습니다 : 아래 코드의 예를 들어 보자. 왜 이런 일이 발생하며 어떻게 해결할 수 있습니까?
관련이 없지만 첫 번째 몇 줄은 'w'가 필요하지 않습니다. 'a'가 존재하지 않으면 파일을 만듭니다. – Wboy
나는 그것을 몰랐습니다. 감사! :) – Litwos
어떻게 플러시를 우회하기 위해 주어진 위치에서 스크립트를 종료 했습니까? *가 자동으로 수행합니까? – guidot