2013-02-07 18 views
5

Chcę skopiować plik następnie zacząć pisać nowy plik:czekać na shutil.copyfile skończyć

shutil.copyfile("largefile","newlargefile") 
nwLrgFile=open("newlargefile",'a') 
nwLrgFile.write("hello\n") 

Jednak, kiedy należy wykonać powyższe hello zostaną zapisane przed końcem pliku. Jaki jest właściwy sposób, aby upewnić się, że plik copyfile został wykonany?

Spojrzałem na SO i inne miejsca, ale wszystkie odpowiedzi, które widziałem, mówiły, że shutil.copyfile blokuje lub blokuje i że nie powinno to stanowić problemu. A jednak tak jest. Proszę pomóż!

+1

podejrzane. Czy możesz podać samodzielny przykład pokazujący problem? – nneonneo

Odpowiedz

2

Spróbuj użyć copyfileobj bezpośrednio zamiast:

with open('largefile', 'r') as f1, open('newlargefile', 'w') as f2: 
    shutil.copyfileobj(f1, f2) 
    f2.write('hello') 
Powiązane problemy