簡體   English   中英

使用ugo + rw打開Python並且“權限被拒絕”嗎?

[英]Python open and “permission denied” on file with ugo+rw?

我在用Python3編寫的RHEL 7.x機器上有一個腳本。 在測試此腳本時,我創建了一個函數,該函數將追加到同一目錄中的文本文件中。

如果我從本地目錄(即./pyscript.py執行腳本,則一切正常。

但是我試圖從Bash腳本中執行兩個以上的目錄來執行此操作,但它似乎無法正常工作。 腳本中的其他功能將執行,但是最后一個附加到文本文件的功能將不會執行。

現在,如果我以從我的主目錄擁有腳本(和txt文件)的用戶身份運行腳本,則該腳本將出錯並顯示權限錯誤。 但是,如果我使用sudo運行腳本,則不會出現任何錯誤,但是它不會寫入文本文件。

我的用戶在bash腳本和python腳本之間的每個目錄上都具有RW特權。

關於為什么運行sudo或本地用戶的任何想法似乎都無法讓我寫入文本文件?

編輯

Traceback (most recent call last):
  File "ace/ppod/my_venv/emergingThreats/et_pro_watchlists.py", line 165, in <module>
    with open('etProLog.txt', 'a') as outlog:
PermissionError: [Errno 13] Permission denied: 'etProLog.txt'

如果使用open("filename.txt", 'mode') ,它將在執行腳本的目錄中打開該文件,而不是相對於腳本的當前目錄。 如果您想要腳本所在目錄的路徑,請導入os模塊並使用open(os.path.dirname(os.path.abspath(__file__))+"filename.txt") 權限錯誤是因為文件不存在。 sudo會覆蓋它,但不會執行任何操作,因為該文件不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM