有没有办法使用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 复制文件的内容而不复制其属性(?)
答案 0 :(得分:2)
按照您的喜好打开文件,然后使用shutil.copyfileobj()
将文件内容从一个文件复制到另一个文件。
答案 1 :(得分:1)
在我的Linux机器上使用python 2.7& python3 shutil.copyfile(inputfile, outputfile)
似乎也有效。