Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    [Python] Accesso negato all'apertura di un file

    Salve a tutti. Stavo provando a modificare il file hosts di windows, ma se avvio il programma mi da accesso negato. Io ho scritto così:

    codice:
    f=open("C:\Windows\System32\drivers\etc\hosts.txt", "w")
    f.write("prova")
    f.close()
    Qualcuno sa se c'è un metodo per risolvere ? Non ho trovato granchè in rete..

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il file si chiama hosts e il \ va raddoppiato

    f=open("C:\\Windows\\System32\\drivers\\etc\\hosts ", "w")

    Inoltre l'utente con cui operi deve avere i permessi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Be lavoro sul mio pc, però per aprire il file hosts devo eseguirlo come amministratore. Come posso fare a scriverlo in codice?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non so come si fa in Python ma dovresti usare l'API

    LogonUser

    ma in ogni caso dovrai fornire la password di administrator.

    Dato che lavori con il tuo PC, puoi usare direttamente un utente administrator.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ok, risolto. Ho installato le librerie win32 di Python. Questo è il codice per modificare file di sistema:

    codice:
    from win32com.shell import shell  
    import win32api  
    import sys  
    import os     
    def main():  
        # eseguito con diritti admin  
        pass
        # Qui il main, nel mio caso ho modificato il file hosts
        f=open("C:\\Windows\\System32\\drivers\\etc\\hosts", "w")
        f.write("127.0.0.1\twww.google.com")
        f.close()    
    if __name__ == '__main__':  
        if not shell.IsUserAnAdmin():  
            win32api.ShellExecute(0, "runas", sys.executable, ' '.join(sys.argv), os.curdir, 1)  
        else:  
            main()
    Grazie per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.