在Windows下使用Python复制文件

Cri*_*ris 6 python

我正在尝试使用以下代码复制Python脚本中的文件:

inf,outf = open(ifn,"r"), open(ofn,"w")
outf.write(inf.read())
inf.close()
outf.close()
Run Code Online (Sandbox Code Playgroud)

这完全适用于unedr OSX(以及我怀疑的其他UNIX版本)但在Windows下失败.基本上,read()调用返回的字节数远远少于实际文件大小(长度约为10KB),因此会导致写入截断输出文件.

read()方法的描述说"如果size参数是否定的或省略,则读取所有数据直到达到EOF",所以我希望上面的代码可以在任何环境下工作,让Python屏蔽我的代码来避免操作系统的怪癖.

那么,有什么意义呢?现在,我使用shutil.copyfile,这符合我的需要,它的工作原理.我正在使用Python 2.6.5

谢谢你们.

nmi*_*els 3

无论如何,shutil 是复制文件的更好方法,但是您需要在 Windows 上以二进制模式打开二进制文件。这很重要。open(fname, 'rb')