开发者

Copying files with Python under Windows

I'm trying to copy files inside a Python script using the following code:

inf,outf = open(ifn,"r"), open(ofn,"w")
outf.write(inf.read())
inf.close()
outf.close()

This works perfectly unedr OSX (and other UNIX flavors I suspect) but fails under Windows. Basically, the read() call returns far less bytes than the actual file size (which are around 10KB in length) hence causing the write truncate the output file.

The description of the read() method says that "If the size argument is ne开发者_开发百科gative or omitted, read all data until EOF is reached" so I expect the above code to work under any environment, having Python shielding my code from OSs quirks.

So, what's the point? Now, I resorted to shutil.copyfile, which suits my need, and it works. I'm using Python 2.6.5

Thank you all.


shutil is a better way to copy files anyway, but you need to open binary files in binary mode on Windows. It matters there. open(fname, 'rb')

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜