Das Aktualisieren einer Aliases Datei mit Hilfe von Python
Verfasst: Donnerstag 11. April 2013, 09:44
Hallo zusammen,
ich habe mich gerade im Forum angemeldet, da ich aus den Einträgen im Internet nicht wirklich schlau werde.
Ich bin neu in der Programmierung, vorallem was Python angeht. Nun habe ich aber während meiner Ausbildung ein Python-Skript
bekommen, das ich mit einigen Funktionen editieren soll und Fehler ausmerzen soll. Zu einer der Funktionen gehört auch das automatische Aktualisieren einer Aliases Datei. ( Der Code den ihr gleich seht ist nicht von mir, ich habe nur einige Kommentare für mein eigenes Verständnis hinzugefügt.) Auf jeden Fall wird folgender Fehler ausgeworfen:
"ValueError: need more than 1 value to unpack"
Ich verstehe zwar was dieser Fehler in etwa bedeutet, habe aber keine Ahnung wie ich das beheben, bzw. anders machen sollte.
Ich bin mir sicher das ihr mir helfen könnt. Und ich würde euch bitten das was ihr als Lösung vorschlagt für "Idioten" zu erklären.^^
Ich danke euch schonmal im voraus. Hier sind noch einige Informationen die für euch nützlich sein könnten:
Inhalt der Test-Aliases Datei:
1: 0, 3, 5, afdas
2: 1, 2, 3, ads
3: 3, 2, 1, asd
4: 4, 5, 1, aff
5: 5, 2, 4, gdafg
Python Codeausschnitt:
Entschuldige, dass wurde in Eile geschrieben. Der Fehler tritt laut Fehlermeldung nach oder während folgender Zeiler auf:
Traceback:
nochmals vielen Dank
MfG
Twinhand
ich habe mich gerade im Forum angemeldet, da ich aus den Einträgen im Internet nicht wirklich schlau werde.
Ich bin neu in der Programmierung, vorallem was Python angeht. Nun habe ich aber während meiner Ausbildung ein Python-Skript
bekommen, das ich mit einigen Funktionen editieren soll und Fehler ausmerzen soll. Zu einer der Funktionen gehört auch das automatische Aktualisieren einer Aliases Datei. ( Der Code den ihr gleich seht ist nicht von mir, ich habe nur einige Kommentare für mein eigenes Verständnis hinzugefügt.) Auf jeden Fall wird folgender Fehler ausgeworfen:
"ValueError: need more than 1 value to unpack"
Ich verstehe zwar was dieser Fehler in etwa bedeutet, habe aber keine Ahnung wie ich das beheben, bzw. anders machen sollte.
Ich bin mir sicher das ihr mir helfen könnt. Und ich würde euch bitten das was ihr als Lösung vorschlagt für "Idioten" zu erklären.^^
Ich danke euch schonmal im voraus. Hier sind noch einige Informationen die für euch nützlich sein könnten:
Inhalt der Test-Aliases Datei:
1: 0, 3, 5, afdas
2: 1, 2, 3, ads
3: 3, 2, 1, asd
4: 4, 5, 1, aff
5: 5, 2, 4, gdafg
Python Codeausschnitt:
Code: Alles auswählen
aliasesFile = open("aliases", "r") # *Zeile 214 open the aliases file which was safed in the "get_aliases" Shellscript with read access
aliasesFileContents = aliasesFile.read().splitlines() # Read file into array, line by line
aliasesFile.close()
lines = [0]
currentLine = 0 # The current line is the first line in the script
for line in aliasesFileContents:
group, users = line.split(":") # <--- Fehler Zeile 224 Read group data into group and user data into users
users = users.split(", ") # split the users data into every user data
if userform.GetInput("Username") in users: # If user is in group
users.remove(username.GetInput("Username")) # Remove user from user data
users = ", ".join(users) # Write users line again
lines.append(group + ": " + users) # Overwrite current line
currentLine = currentLine + 1
lines = "\n".join(lines)
outFile = open("aliases", "w") # Overwrite file
outFile.write(lines)
outFile.close()
Code: Alles auswählen
group, users =line.split(":")Traceback:
Code: Alles auswählen
localhost> localhost> localhost> setaclmailbox: super98: lrswipc: Mailbox does not exist
localhost> setaclmailbox: super98: lrswipc: Mailbox does not exist
localhost> [sudo] password for twinhand:
newaliases: Aliases are not used in sSMTP
Connection to xxx.xxx.x.xxx closed.
Fetching file from remote host.
[sudo] password for twinhand:
1: 0, 3, 5, afdas
2: 1, 2, 3, ads
3: 3, 2, 1, asd
4: 4, 5, 1, aff
5: 5, 2, 4, gdafg
Connection to xxx.xxx.x.xxx closed.
Success!
Traceback (most recent call last):
File "mais-tools.py", line 5, in <module>
application.Run()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/application.py", line 43, in Run
self.Menu()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/application.py", line 39, in Menu
self.mainMenu.GetInput()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/library/gui/menu.py", line 70, in GetInput
command[1]()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/application.py", line 21, in <lambda>
self.mainMenu.AddItem("u", "User Management", lambda:functions.usermanagement.Module(self))
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/__init__.py", line 11, in __init__
self.Menu()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/__init__.py", line 20, in Menu
menu.GetInput()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/library/gui/menu.py", line 70, in GetInput
command[1]()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/__init__.py", line 16, in <lambda>
menu.AddItem("r", "Remote", lambda:functions.usermanagement.remote.Remote(self))
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 12, in __init__
self.Login()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 49, in Login
self.Menu()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 23, in Menu
menu.GetInput()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/library/gui/menu.py", line 70, in GetInput
command[1]()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 17, in <lambda>
menu.AddItem("r", "Automated user registration", lambda:AutomatedUser(self))
File "/media/data/twinhard/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 168, in __init__
self.Menu()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 177, in Menu
menu.GetInput()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/library/gui/menu.py", line 70, in GetInput
command[1]()
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 172, in <lambda>
menu.AddItem("a", "Add User", lambda:self.AddUser())
File "/media/data/twinhand/Wichtige Inhalte/Bashscript zum anlegen und löschen von benutzern/mais-tools2/functions/usermanagement/remote.py", line 224, in AddUser
group, users = line.split(":") # Read group data into group and user data into users
ValueError: need more than 1 value to unpack
nochmals vielen Dank
MfG
Twinhand