我尝试使用以下代码在Python脚本中复制文件:
inf,outf = open(ifn,"r"), open(ofn,"w")
outf.write(inf.read())
inf.close()
outf.close()
这在unedorosx(以及我怀疑的其他UNIX风格)中工作得很好,但在Windows下失败了。基本上,read()调用返回的字节远远小于实际文件大小(大约10KB的长度),因此会导致write截断输出文件。在
read()方法的描述是“如果size参数为负数或省略,则读取所有数据,直到达到EOF为止”,因此我希望上面的代码可以在任何环境下工作,让Python保护我的代码不受OSs的干扰。在
那么,有什么意义呢?现在,我求助于shutil.copyfile文件,这很适合我的需要,而且很管用。我使用的是python2.6.5
谢谢大家。在
无论如何,shutil是一种更好的复制文件的方法,但是您需要在Windows上以二进制模式打开二进制文件。这很重要。
open(fname, 'rb')
相关问题 更多 >
编程相关推荐