2015-02-13 11 views
6

Ich schreibe einen Datenverarbeitungscode, in dem ich eine neue Datei erstellen, verarbeitete Daten in diese Datei schreiben und schließen. Die Datei muss jedoch im schreibgeschützten Modus geschlossen werden, damit sie nicht versehentlich geändert wird. Kann dies in Python gemacht werden?Datei in den schreibgeschützten Modus in Python ändern

Antwort

9

Dazu Sie os.chmod

import os 
from stat import S_IREAD, S_IRGRP, S_IROTH 

filename = "path/to/file" 
os.chmod(filename, S_IREAD|S_IRGRP|S_IROTH) 

verwenden Hinweis, dass dies voraus, dass Sie angemessen haben Berechtigungen, und Sie möchten mehr als nur der Besitzer in der Lage sein, die Datei zu lesen. Entfernen Sie ggf. und S_IRGRP, wenn dies nicht der Fall ist.

UPDATE

Wenn Sie die Datei beschreibbar erneut vornehmen müssen, rufen Sie einfach os.chmod wie so:

from stat import S_IWUSR # Need to add this import to the ones above 

os.chmod(filename, S_IWUSR|S_IREAD) # This makes the file read/write for the owner 

Ganz einfach aufrufen, bevor Sie die Datei zum Schreiben zu öffnen, rufen Sie dann die erste Form um es wieder schreibgeschützt zu machen, nachdem Sie fertig sind.

+0

Und wie ändere ich es zu schreiben, wenn ich das Programm ausführen. Ich möchte es ändern, um zu schreiben, wenn das Programm ausgeführt wird, und wenn es beendet wird, sollte es in den schreibgeschützten Modus geändert werden. –

+0

Ah, das haben Sie in der ursprünglichen Frage nicht angegeben. Ich werde aktualisieren – aruisdante

-1

Ich denke, man os-Modul nach dem Schreiben auf Ihre Datei verwenden können Sie die Dateiberechtigungen wie folgt zu ändern:

import os 
filename=open("file_name","w") 
filename.write("my text") 
filename.close() 
os.system("chmod 444 file_name") 
+2

Aufruf chmod über 'os.system' ist nicht tragbar, es wird nicht auf Windows funktionieren. Besser ist es, die 'os.chmod' Methode direkt zu benutzen. – aruisdante

Verwandte Themen