有沒有辦法使用Python 3 shutil複製一個只讀文件,以便目標文件不會收到源文件的只讀模式?使用Python 3 shutil來複制文件並保持destfile可寫?
我成功地使用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而不復制其屬性(?)
下面兩個由Ignacio Vazquez-Abrams和Saxony的Rolf給出的兩個答案都適用:shutil.copyfileobj()和shutil.copyfile()都似乎在複製文件內容的同時使目標文件保持可寫。不知道我之前做錯了什麼,這讓我得出結論,他們讓我的目標文件是隻讀的... – RBV