使用Python 3 shutil复制文件并保持destfile可写?

时间:2015-09-27 07:06:36

标签: python shutil

有没有办法使用Python 3 shutil复制只读文件,以便目标文件不接收源文件的只读模式?

我成功使用 shutil 创建文件的工作副本:

import os, stat

inputfile = 'inputfile.json'    # A read-only file
outputfile = 'outputfile.json'  # A file I want to keep writeable
os.chmod(outputfile, stat.S_IWRITE)    # If outputfile exists, ensure it's writeable
shutil.copy(inputfile, outputfile)  # Rats! -- shutil included read-only attributes in copy operation

但是 shutil 还复制了输入文件的只读属性以及文件内容。我不想要那个。

显然我可以在复制操作后重复 os.chmod 命令。而且我知道如何在不使用 shutil 的情况下创建可写副本。但是是否可以使用 shutil 复制文件的内容而不复制其属性(?)

2 个答案:

答案 0 :(得分:2)

按照您的喜好打开文件,然后使用shutil.copyfileobj()将文件内容从一个文件复制到另一个文件。

答案 1 :(得分:1)

在我的Linux机器上使用python 2.7& python3 shutil.copyfile(inputfile, outputfile)似乎也有效。