Reputation: 1412
I want to copy a file then start writing the new file:
shutil.copyfile("largefile","newlargefile")
nwLrgFile=open("newlargefile",'a')
nwLrgFile.write("hello\n")
However, when I do the above hello
will be written before the end of the file. What is the right way to make sure copyfile is done?
I looked on SO and other places but all the answers I saw said that shutil.copyfile blocks or locks and that it shouldn't be a problem. And yet, it is. Please help!
Upvotes: 7
Views: 4040
Reputation: 179422
Try using copyfileobj
directly instead:
with open('largefile', 'r') as f1, open('newlargefile', 'w') as f2:
shutil.copyfileobj(f1, f2)
f2.write('hello')
Upvotes: 3