Ausführen von Shell-Befehlen in Python

Python ist eine beliebte Wahl, wenn es darum geht, alles Mögliche zu automatisieren. Dazu gehört auch die Automatisierung von Systemverwaltungsaufgaben oder Aufgaben, die die Ausführung anderer Programme oder die Interaktion mit dem Betriebssystem erfordern. Es gibt jedoch viele Möglichkeiten, dies in Python zu erreichen, von denen die meisten wohl eher schlecht sind. In diesem Artikel werden wir uns veschiedene Möglichkeiten ansehen, die Python anbietet, um andere Prozesse auszuführen – den schlechten, den guten und vor […]

Encoding einer Datei ändern

Da Dateien auf unterschiedlichen Systemen mit verschiedenen Editoren oder per Software erstellt werden, gibt es immer wieder Fehler bezüglich des Encoding. Ein typischer Fehler bei der Ausführung von Python-Skripten ist „UnicodeDecodeError: ‚utf-8‘ codec can’t decode byte in position„. In so einem Fall ist dann der Inhalt der Datei in einem anderen Encoding einzulesen. Das Problem dabei ist, dass man das aktuelle Encoding oft gar nicht kennt. Mit dem folgenden Skript kann eine Datei eingelesen werden, […]

Confluence-Seiten mit der REST-API verwalten

Falls zum Informationsaustausch und zur Kommunikation im Unternehmen Confluence von Atlassian eingesetzt wird, dann kann es manchmal sinnvoll sein, Seiten automatisch erstellen zu lassen, um z.B. mit einer Auslieferung zeitgleich Release Notes zu veröffentlichen.Mit dem folgenden Skript confluence_util.py lassen sich per HTTP-Aufruf Seiten erstellen, ändern oder löschen (sofern der Benutzer die benötigten Rechte besitzt). In dieser Version wird für die Authentifizierung eine auth-Datei verwendet. Diese Datei lässt sich mit dem Skript create_authorization.py erzeugen. Weitere Informationen […]

Datum für einen Wochentag ermitteln

Manchmal möchte man wissen, welches Datum ein bestimmter Wochentag im Monat hat, z.B. der letzte Freitag im Monat oder der zweite Mittwoch im Monat.Die folgende Funktion ermittelt das Datum für eine gegebene Kombination aus Jahr, Monat und Wochentag, und gibt es in der Form dd.mm.yyyy zurück: