2011-04-25 69 views
11

我需要在python中創建一個可讀寫的文件。目前該文件是隻讀的。我在Windows機器上運行。我運行以下代碼:用Python讀寫文件

 

os.chmod(projectPath, stat.S_IWRITE | stat.S_IREAD) 
 

對需要讀/寫的文件。但是,當我嘗試執行需要被讀寫的文件,我得到如下:

 

ISDEV : fatal error -2200: Could not overwrite file C:\WINDOWS\Temp\STixInstaller\STixInstallShield.ism 
 

所以,很顯然,這不是讓讀/寫文件。然後我檢查文件權限,它仍然是隻讀的。

任何想法,爲什麼這會失敗,或者如果有更簡單的方法來做到這一點我失蹤了?

+0

閱讀文件是否被鎖定? – 2011-04-25 15:33:03

+0

@RestRisiko我怎麼知道它是否被鎖定? – user489041 2011-04-25 15:33:57

回答

6

我想你只需要stat.S_IWRITE模式。 我只是跑這個代碼

def main(): 
    path = "C:\\temp\\log.txt" 
    os.chmod(path, stat.S_IWRITE) 

一個測試,它設置爲只讀到一個文件而已,在那裏,當我與S_IREAD運行它,相反,它設置爲不讀回只

+0

太棒了,謝謝! – user489041 2011-04-26 16:12:58

0

確保您有權更改文件。誰是文件的所有者?它是運行Python腳本的人嗎?所有這些都必須考慮在內。

+0

它實際上是作爲構建腳本的一部分運行的,可以完全訪問該文件。我在想,也許'stat.S_IWRITE | stat.S_IREAD'實際上並沒有做到我想的那樣,或者在Windows下有一些操作系統特定的事情發生。 – user489041 2011-04-25 15:41:06