Seite 1 von 1
Textdatei erstellen mit Python?
Verfasst: Mittwoch 2. Januar 2008, 04:18
von knuffi123
Hallo erstmal:)
Wie kann man denn eine Textdatei erstellen mit Python?
Ich kenne nur os.system("edit datei.txt")
Ich möchte aber eine Datei erstellen und bestimmte Werte in die Datei schreiben.
Mit der obigen Methode komme ich nicht zurecht weil man erst über den editor abspeichern muss...
Vielen Dank
Verfasst: Mittwoch 2. Januar 2008, 05:05
von Trundle
Code: Alles auswählen
f = file('spam.txt', 'w')
f.write('tolle erste Zeile\n')
f.write('tolle zweite Zeile\n')
print >>f, 'tolle dritte Zeile'
f.close()
Verfasst: Mittwoch 2. Januar 2008, 05:05
von rico
ich machs mal kurz:
im Interpreter eingeben und aufmerksam lesen, da steht das am besten erklärt.
notfalls
das hier durchlesen und dann irgendwann
hier landen.
Re: Textdatei erstellen mit Python?
Verfasst: Mittwoch 2. Januar 2008, 08:15
von gerold
knuffi123 hat geschrieben:Wie kann man denn eine Textdatei erstellen mit Python?
Hallo knuffi123!
http://www.python-forum.de/topic-6157.html
mfg
Gerold

Re: Textdatei erstellen mit Python?
Verfasst: Mittwoch 2. Januar 2008, 14:25
von Leonidas
knuffi123 hat geschrieben:Ich kenne nur os.system("edit datei.txt")
Das funktioniert spätestens dann nicht, wenn man Linux benutzt, wo es kein ``edit`` gibt.
Verfasst: Donnerstag 3. Januar 2008, 03:11
von knuffi123
OK vielen dank.
Ich würde gerne dieser Datei (unter Windows) bestimmte Zugriffsrechte geben. (Nur lesen in dem Fall)
Ich kenne hierfür os.chmod(path, mode)
Könnte mir jemand anhand eines Beispiels zeigen wie ich das korrekt anwende?
Vielen Dank
Verfasst: Donnerstag 3. Januar 2008, 04:14
von nkoehring
Hi knuffi123...
um das zu tun, musst du wissen, wie unter Windows Dateirechte vergibst. Ich persoenlich musste dazu gerade auch Google (bzw
Scroogle) fragen.
Ich habe ein Beispiel gefunden, dass die Win32 extensions (zB bei ActivePython dabei) verwendet:
Code: Alles auswählen
import win32api, win32con
def hide_file( fn ):
x = win32api.GetFileAttributes( fn )
x |= win32con.FILE_ATTRIBUTE_READONLY
win32api.SetFileAttributes( fn, x )
def unhide_file( fn ):
x = win32api.GetFileAttributes( fn )
x &= ~win32con.FILE_ATTRIBUTE_READONLY
win32api.SetFileAttributes( fn, x )
Verfasst: Donnerstag 3. Januar 2008, 08:42
von gerold
knuffi123 hat geschrieben:Ich kenne hierfür os.chmod(path, mode)
Könnte mir jemand anhand eines Beispiels zeigen wie ich das korrekt anwende?
Hallo knuffi123!
Code: Alles auswählen
import os
import stat
os.chmod(r"J:\Ablage\aaa.txt", stat.S_IREAD)
os.chmod(r"J:\Ablage\aaa.txt", stat.S_IWRITE)
Mehr als das Schreibschutz-Flag setzen oder wieder wegnehmen geht aber nicht unter Windows. Für alle anderen Berechtigungen musst du entweder direkt auf die Windows-API zugreifen (=kompliziert) oder das Kommandozeilentool "Cacls" verwenden. Suche in der Windows-Hilfe (Start - Hilfe und Support) danach um mehr darüber zu erfahren.
mfg
Gerold

Verfasst: Donnerstag 3. Januar 2008, 12:44
von knuffi123
OK vielen Dank.
Wenn ich der Datei die Leserechte nehmen möchte, dann wird das mit chmod nicht funktionieren.
Hier wäre die Methode von nkoehring anzuwenden, denke ich?
Verfasst: Donnerstag 3. Januar 2008, 13:12
von gerold
knuffi123 hat geschrieben:Wenn ich der Datei die Leserechte nehmen möchte, dann wird das mit chmod nicht funktionieren.
Hier wäre die Methode von nkoehring anzuwenden, denke ich?
Hallo knuffi123!
Weder, noch! Das ReadOnly-Flag ist ein Dateiflag. Aber bei einer Leseberechtigung handelt es sich um ein Benutzer-Zugriffsrecht. Diese Berechtigungen nennen sich ACLs und lassen sich am Einfachsten mit dem Kommandozeilentool **Cacls** setzen.
mfg
Gerold

Verfasst: Freitag 4. Januar 2008, 02:18
von knuffi123
gerold hat geschrieben:knuffi123 hat geschrieben:Wenn ich der Datei die Leserechte nehmen möchte, dann wird das mit chmod nicht funktionieren.
Hier wäre die Methode von nkoehring anzuwenden, denke ich?
Hallo knuffi123!
Weder, noch! Das ReadOnly-Flag ist ein Dateiflag. Aber bei einer Leseberechtigung handelt es sich um ein Benutzer-Zugriffsrecht. Diese Berechtigungen nennen sich ACLs und lassen sich am Einfachsten mit dem Kommandozeilentool **Cacls** setzen.
mfg
Gerold

Danke:)
Nur muss ich mit cacls auch den Benutzer angeben für den ich die Rechte ändern will. Gibt es eine Möglichkeit das für alle Benutzer anzuwenden?
Vor allem wenn mein Programm auf einem anderen Rechner ausgeführt wird?
Verfasst: Freitag 4. Januar 2008, 08:35
von gerold
knuffi123 hat geschrieben:Gibt es eine Möglichkeit das für alle Benutzer anzuwenden?
Hallo knuffi123!
Unter einem deutschen Windows XP gibt es die Gruppen "Administratoren" und "System". Diesen Gruppen sollte man normalerweise Vollzugriff (/F) geben -- muss aber nicht unbedingt sein. Als Mitglied der Gruppe "Administratoren" kann man sich sowiso Zugang zu jeder Datei besorgen, indem man deren Besitz übernimmt.
Unter einem deutschen Windows XP gibt es die Gruppe "Benutzer". Zu dieser Gruppe gehört normalerweise jeder Benutzer des Computers. Dieser Gruppe kannst du das benötigte Recht geben.
Vorsicht: Unter einem englischen Windows XP heißen die Gruppen anders. Und mit Windows Vista habe ich noch nichts gemacht.
mfg
Gerold

Verfasst: Freitag 4. Januar 2008, 15:20
von knuffi123
gerold hat geschrieben:knuffi123 hat geschrieben:Gibt es eine Möglichkeit das für alle Benutzer anzuwenden?
Hallo knuffi123!
Unter einem deutschen Windows XP gibt es die Gruppen "Administratoren" und "System". Diesen Gruppen sollte man normalerweise Vollzugriff (/F) geben -- muss aber nicht unbedingt sein. Als Mitglied der Gruppe "Administratoren" kann man sich sowiso Zugang zu jeder Datei besorgen, indem man deren Besitz übernimmt.
Unter einem deutschen Windows XP gibt es die Gruppe "Benutzer". Zu dieser Gruppe gehört normalerweise jeder Benutzer des Computers. Dieser Gruppe kannst du das benötigte Recht geben.
Vorsicht: Unter einem englischen Windows XP heißen die Gruppen anders. Und mit Windows Vista habe ich noch nichts gemacht.
mfg
Gerold

Hallo Gerold,
wie kann ich denn die Rechte einer ganzen Benutzergruppe manipulieren mit cacls?
Ich kenne nur diese Syntax: cacls test.txt /d knuffi123
So nehme ich dem Benutzer knuff123 alle Rechte an der text.txt Datei.
Wie mache ich das mit Gruppen?
Danke für die Hilfe:)
Verfasst: Freitag 4. Januar 2008, 18:13
von gerold
knuffi123 hat geschrieben:wie kann ich denn die Rechte einer ganzen Benutzergruppe manipulieren mit cacls?
Ich kenne nur diese Syntax: cacls test.txt /d knuffi123
Hallo knuffi123!
Genau gleich.
Schau dir zuerst mal die Rechte an:
Dann siehst du welche Gruppen zugriff darauf haben.
So nimmst du der Gruppe "Jeder" alle Rechte:
mfg
Gerold
