2015-09-27 46 views
0

有沒有辦法使用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而不復制其屬性(?)

+0

下面兩個由Ignacio Vazquez-Abrams和Saxony的Rolf給出的兩個答案都適用:shutil.copyfileobj()和shutil.copyfile()都似乎在複製文件內容的同時使目標文件保持可寫。不知道我之前做錯了什麼,這讓我得出結論,他們讓我的目標文件是隻讀的... – RBV

回答

2

打開文件複製文件的內容,只要你喜歡,並使用shutil.copyfileobj()只是該文件的內容從一個到另一個複製。

1

在我的Python盒子上用python 2.7 & python3 shutil.copyfile(inputfile, outputfile)似乎也能工作。

相關問題