2013-08-01 99 views
1

我正在使用Ubuntu並在Python中編寫代碼。我想補充文件中的一條線這是擺在根目錄下:根目錄IOError:[Errno 13]權限被拒絕:

ins = open("/usr/local/etc/conf.d/test.txt", "r") 
array = [] 
for line in ins: 
    array.append(line) 
array.append('add this new line') 
f = open("/usr/local/etc/gnuradio/test.txt",'w') 
for line in array: 
    f.write(line) 

我收到此錯誤:

Traceback (most recent call last): 
    File "overwrite.py", line 6, in <module> 
    f = open("/usr/local/etc/gnuradio/test.txt",'w') 
IOError: [Errno 13] Permission denied: '/usr/local/etc/gnuradio/test.txt' 

我知道我們沒有權限沒有改變根目錄什麼使用sudo。但是,無論如何,我可以從我的python模塊更新這個文件嗎?

+1

這不是Python問題,甚至是編程問題;這是使用類Unix系統的一個基本問題。 – abarnert

+0

是的,你是對的,但我知道Python有一些解決方案來運行sudo命令像pexpect,所以我認爲它可能有這樣的問題的一些解決方案 – user2460869

+0

'pexpect'不知道任何關於'sudo'。當然,你可以編寫使用它的代碼來驅動'sudo'在一個腳本上運行另一個Python實例,這個腳本執行實際的工作......但是爲什麼?如果你真的想讓你的密碼以純文本的形式存在,那麼有更多好玩的方法可以做到。 – abarnert

回答

2

您已經回答了您自己的問題:您沒有權限這麼做。不管你使用sh,bash,python,C,erlang還是橡皮管攻擊,都可以使用。

或者以擁有必要權限的用戶運行您的腳本,或者授予您自己對該文件的訪問權限。