這是我在stackoverflow上的第一篇文章,所以如果有些錯誤,我很想學!python open() - 訪問被拒絕
我正在用python爲Cinema 4d編程插件。一切工作在Mac上,但我在Windows上遇到了問題,我將解釋。
如果在渲染服務器上渲染,該插件需要一個服務器路徑。我希望用戶輸入一次路徑,然後將其存儲在.txt文件中。
爲C4D,插件正在安裝,通過draging和 - 滴速插件插入插件文件夾在例如:
C:/ PROGRAMM文件/ Maxon公司/ Cinema4D在/插件/ NewPluginGoesHere
在爲了保持一切都很乾淨,我希望pathToServer.txt(文本文件只能在路徑中存儲一行)插入到插件文件夾中。將插件安裝(丟棄)到所述文件夾時,.txt文件已經存在 - >不是由插件創建的。
這裏談到的問題:
我打開並寫入文件兼容Mac
pathFile = open(pathToPathFile, "w")
pathFile.write(pathToServerFolder)
工作正常,但在Windows拋出
IOError: [Errno 13] Permission denied: 'C:\\Program Files\\MAXON\\CINEMA 4D R14\\plugins\\MultiLayerRender\\Renderserverpath.txt'
。
我很不熟悉使用python這樣的任務(如文件管理)。
然後我嘗試了以下內容:
pathFile = subprocess.Popen(pathToPathFile, stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell = True)
pathFile.communicate(input = pathToServerFolder)
pathFile.stdin.close()
哪個不給我一個錯誤,但它也似乎並沒有做任何事情:/
我讀throung子的Python文檔,但是如果有的話,那真的沒有幫助我,它讓我困惑。
我注意到,我還需要在管理模式下運行我的代碼編輯器,以便它有權直接保存到所述目錄中的插件文件夾中。看起來'程序文件'文件夾中的文件受到某種程度的保護。另外,這個插件將被安裝在幾個不同的計算機上,無論是mac還是windows,並且因此改變例如programm files文件夾的權限不是一個選項。最後的拖放應該是安裝它所需要做的一切。
有誰知道如何做到這一點?
這實際上是一個不錯的第一篇文章。您向我們展示了您的代碼,您向我們提供了您的確切錯誤消息,並且您還解釋了有關可能出現問題的原因以及爲什麼特定解決方案無法正常工作的想法。不錯的工作! –
不知道爲什麼你認爲子過程會有所幫助,但... –