搜尋

首頁  >  問答  >  主體

windows - python 文件读写 权限 permission denied

我写了一个python小工具,安装在C:\Program Files (x86)\appname目录下,可是无法创建和读写文件,出现permission denied错误提示。
之前程序是可以在C:\Users\XXX\AppData\Local\VirtualStore\Program Files (x86)创建文件的,因为改了一大堆东西,而且代码也很长,就不贴代码了。
如何做才能在C:\Users\XXX\AppData\Local\VirtualStore\Program Files (x86)\appname创建文件,不关闭UAC,不使用管理员权限。

就像这样的代码:

# -*- coding: utf-8 -*-
with open("a.txt","w")as f:
    pass

操作系统:windows 10 专业版 1607 开启UAC

python 2.7.11

伊谢尔伦伊谢尔伦2802 天前3861

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-04-18 09:41:05

    跟目錄有關係,windows下這個目錄需要管理員權限,可以去其他目錄例如E:AC目錄下操作檔

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:41:05

    補充一下吧。
    我希望使用的是UAC虛擬化,但是是windows不提倡的做法。問題問的是UAC虛擬化失敗的原因和處理方法。我之前是可以虛擬化成功的,不知道為什麼失敗了。
    另外給出windows推薦的方式。把檔案建立在其他目錄下。用os.getenv('ALLUSERSPROFILE')或者os.environ.get('ALLUSERSPROFILE')获取系统环境变量,然后构造路径。相关的变量还有LOCALAPPDATAAPPDATA分別對應不同的目錄。或許用合適的方式,這問題就不存在了。還是取得系統變數寫入檔案比較好,而不是在C碟或其他磁碟建立資料夾,萬一沒有其他DEF盤符呢,或是係統盤符不是C碟呢?程式不該寫死了,最好照微軟的建議和大家約定的做法去做。最後感慨一下,segmentfault還不夠活躍,我提的問題基本上是自問自答。再吐槽一下,文字編輯器不好用。

    UAC相關連結

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:41:05

    可以對目錄權限做劃分,如果一定要在這個目錄下建文件,就給這個資料夾可寫權限,繼承權限就看你需求了

    回覆
    0
  • 取消回覆