Hallo Python-Gemeinde,
ich habe keine Programmier-Erfahrung und will ein Programm schreiben, Ehe ich anfange nachzuforschen und zu schreiben, möchte ich das Prog hier kurz beschreiben und wie ich es machen will.
Das Programm soll folgendes können:
1 x täglich (mit cron) soll es abgerufen werden.
Datum auslesen
Dann in einer Datei (Auswahl der Datei abhängig vom Monat)
ein Zeichen (Abhängig vom Tag) aus einer Zeichenkette isolieren.
Das Zeichen soll einer Datei zugeordnet werden,
in der eine Addresse steht.
Diese Addresse soll in ein LaTeX-Dokument eingebunden werden
und dann mit xpdf --fullscreen dargestellt werden.
Beispiel für den 10. März
Datei "März": abcde fabcd efaba ccaff aeafb defab a
10. Zeichen ist d.
Addresse Datei d:
Familie Mustermann
Musterstraße 10
12345 Musterstadt
Im Tex-Dokument:
Jede Zeile der Addresse ersetzt eine Variable in der Tex-Datei.
Ausgabe der neuen Text-Datei, pdflatex, xpdf
Was meint ihr dazu? Ist das so sinnvoll?
Grüße
hammurabi
mein erstes Programm - brauche Rat!
Ein kleiner Schritt für einen (Python-)Programmierer, ein großer Schritt für mich
Dieses Ding liest doch tatsächlich eine Datei aus, macht daraus einen String und holt das Zeichen an der Position, die dem Tag entspricht.
Ich danke diesem Forum!!! Yeeeha!

Code: Alles auswählen
f = file('/home/yasser/Notdienst/Januar', 'r')
s = f.read()
s = s.replace(" ","")
import time
l = time.localtime()
p = l[2]
s = s[p-1:p]
print s
Ich danke diesem Forum!!! Yeeeha!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Darf ich auch ein paar Stilistische Anmerkungen machen?
Imports stehen meist oben im Quelltext, und filelike Objekte sind normalerweise mit .close() zu schließen.
Imports stehen meist oben im Quelltext, und filelike Objekte sind normalerweise mit .close() zu schließen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi hammurabi,
hab mir mal erlaubt dein Scriptchen etwas ins reine zu schreiben:
Das coding solltest Du noch auf den Zeichensatz stellen, den dein System bzw. dein Editor verwendet.
Dateinamen schreibe ich eigentlich immer in eine Variable am Anfang eines Scripts, dann kann man sie, auch wenn sie öfter in einem Script verwendet werden, schnell finden und gegebenenfalls ändern.
s[p-1:p] ist nicht sehr sinvoll, da der Slice eine Länge von 1 hat und kann durch s[p-1] ersetzt werden.
Gruß
Dookie
hab mir mal erlaubt dein Scriptchen etwas ins reine zu schreiben:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import time
fname = '/home/yasser/Notdienst/Januar'
# Datei öffnen und in String einlesen
f = file(fname, 'r')
s = f.read()
f.close()
# String aufbereiten, Leerzeichen löschen
s = s.replace(" ","")
# aktuelle Zeit holen und Tag extrahieren
l = time.localtime()
p = l[2]
# Buchstabe des aktuellen Tages aus String lesen und ausgeben
s = s[p-1]
print s
Dateinamen schreibe ich eigentlich immer in eine Variable am Anfang eines Scripts, dann kann man sie, auch wenn sie öfter in einem Script verwendet werden, schnell finden und gegebenenfalls ändern.
s[p-1:p] ist nicht sehr sinvoll, da der Slice eine Länge von 1 hat und kann durch s[p-1] ersetzt werden.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Ich habe ein kleines Zwischenproblem:
Wie kann ich erreichen, dass Zeilenumbrüche nicht mitgezählt werden beim Indizieren?
Wäre dankbar für ein Stichwort, welches mir das Nachforschen erleichtert.
Thx im Voraus!
hammurabi (alias Yasser)
Wie kann ich erreichen, dass Zeilenumbrüche nicht mitgezählt werden beim Indizieren?
Wäre dankbar für ein Stichwort, welches mir das Nachforschen erleichtert.
Thx im Voraus!
hammurabi (alias Yasser)
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Zeilenumbrüche auch rausreplacen
oder mit dem Modul re
Damit werden alle Whitespaces, auch Tabs, eliminiert.
Dazu muss noch re mit import re am Anfang des Scripts importiert werden.
Gruß
Dookie
Code: Alles auswählen
s = s.replace(" ","").replace("\n","")
Code: Alles auswählen
s = re.sub(r"\s+", "", s)
Dazu muss noch re mit import re am Anfang des Scripts importiert werden.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Willkommen im Club, mich hat es schonhammurabi hat geschrieben:Dieses Forum könnte maßgeblich daran beteiligt sein, dass mich Python über die anfängliche Zeit des Übereifers hinaus begeistern wird

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich muss mich jetzt erstmal mit regulären Ausdrücken beschäftigen.
Wie das mit dem Modul re funktioniert muss ich (noch!) nicht verstehen, oder?
ich habe das hier gefunden:
http://python.org/doc/2.3.3/lib/re-objects.html
Bin ich da richtig, um weiter zu recherchieren?
Wie das mit dem Modul re funktioniert muss ich (noch!) nicht verstehen, oder?
ich habe das hier gefunden:
http://python.org/doc/2.3.3/lib/re-objects.html
Bin ich da richtig, um weiter zu recherchieren?
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Es gibt auch noch ein HOWTO zu Regularexpressions und Python:
http://www.amk.ca/python/howto/regex/
Dookie
http://www.amk.ca/python/howto/regex/
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nimm doch die immer aktuellste Doku: http://docs.python.org/lib/re-objects.htmlhammurabi hat geschrieben:ich habe das hier gefunden:
http://python.org/doc/2.3.3/lib/re-objects.html
Bin ich da richtig, um weiter zu recherchieren?
Ich kenne noch einen Regex-Kurs, aber um Python zu programmieren brauchst du normalerweise keine Regex, im Gegensatz zu Ruby und Perl. Ich kann Regex auch nicht richtig, ich nehme immer Dookie seine her

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich(Wir) bin(sind) jetzt soweit, dass ich die Gruppe aus den Monats-Dateien abhängig vom Datum auslesen kann.
Das kann mein (unser) Proggie zwar schon seit längerem,
mein Linux spinnt derweil aber ein wenig ...
Die nächste Frage ist jetzt, ob es besser ist, die Dateien, die zur Anzeige gebracht werden, "on the fly" zu erzeugen oder sie einfach mit Office zu machen.
"On the fly" ist cooler aber das andere mit sicherheit flexibler.
Diese entscheidung wird man mir aber sicher kaum abnehemen können.
Was ihr mir raten könnt ist das Format für die Anzeige: pdf, html, ....?
Das kann mein (unser) Proggie zwar schon seit längerem,
mein Linux spinnt derweil aber ein wenig ...
Die nächste Frage ist jetzt, ob es besser ist, die Dateien, die zur Anzeige gebracht werden, "on the fly" zu erzeugen oder sie einfach mit Office zu machen.
"On the fly" ist cooler aber das andere mit sicherheit flexibler.
Diese entscheidung wird man mir aber sicher kaum abnehemen können.
Was ihr mir raten könnt ist das Format für die Anzeige: pdf, html, ....?
Ich kann mir unter rest noch nicht so ganz was vorstellen.
Z.Zt. bin ich mit der Hardware für das Projekt beschäftigt.
Ist reST so ähnlich wie latex, nur dass es nicht ganz so mächtig ist, der "Quellcode" aber quasi "vorformatiert" ist?
Z.Zt. bin ich mit der Hardware für das Projekt beschäftigt.
Ist reST so ähnlich wie latex, nur dass es nicht ganz so mächtig ist, der "Quellcode" aber quasi "vorformatiert" ist?