Seite 1 von 2

mein erstes Programm - brauche Rat!

Verfasst: Mittwoch 26. Januar 2005, 15:01
von Yasser
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

Verfasst: Mittwoch 26. Januar 2005, 15:10
von Leonidas
Ja, das ist ja kein Problem, einfach realisierbar, sofern du die TeX Datei bearbeiten kannst.

Verfasst: Mittwoch 26. Januar 2005, 15:42
von DER Olf
ja, alles bis zum tex dokument...von tex zu pdf gibts ja bestimme progs.

also dann, viel glück :)

Verfasst: Mittwoch 26. Januar 2005, 16:34
von Dookie
Hi Yasser,

mittels Reportlab kannst du auch direkt aus Python pdfs erzeugen.


Gruß

Dookie

Verfasst: Donnerstag 27. Januar 2005, 00:28
von hammurabi
Ein kleiner Schritt für einen (Python-)Programmierer, ein großer Schritt für mich :D

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
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!

Verfasst: Donnerstag 27. Januar 2005, 13:43
von Leonidas
Darf ich auch ein paar Stilistische Anmerkungen machen?

Imports stehen meist oben im Quelltext, und filelike Objekte sind normalerweise mit .close() zu schließen.

Verfasst: Donnerstag 27. Januar 2005, 14:14
von Dookie
Hi hammurabi,

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
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

Verfasst: Donnerstag 27. Januar 2005, 14:19
von Leonidas
Und die Variablennamen etwas länger wählen als einen Buchstaben.

Verfasst: Donnerstag 27. Januar 2005, 14:31
von hammurabi
Heute Abend mache ich weiter und werde mir hoffentlich noch ein paar Tipps abholen können.
Danke! :D

Verfasst: Freitag 28. Januar 2005, 19:16
von hammurabi
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)

Verfasst: Freitag 28. Januar 2005, 19:31
von Dookie
Zeilenumbrüche auch rausreplacen

Code: Alles auswählen

s = s.replace(" ","").replace("\n","")
oder mit dem Modul re

Code: Alles auswählen

s = re.sub(r"\s+", "", s)
Damit werden alle Whitespaces, auch Tabs, eliminiert.
Dazu muss noch re mit import re am Anfang des Scripts importiert werden.


Gruß

Dookie

Verfasst: Freitag 28. Januar 2005, 21:36
von hammurabi
Dieses Forum könnte maßgeblich daran beteiligt sein, dass mich Python über die anfängliche Zeit des Übereifers hinaus begeistern wird :)

Verfasst: Freitag 28. Januar 2005, 21:38
von Leonidas
hammurabi hat geschrieben:Dieses Forum könnte maßgeblich daran beteiligt sein, dass mich Python über die anfängliche Zeit des Übereifers hinaus begeistern wird :)
Willkommen im Club, mich hat es schon 8)

Verfasst: Sonntag 30. Januar 2005, 22:59
von hammurabi
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?

Verfasst: Montag 31. Januar 2005, 00:31
von Dookie
Es gibt auch noch ein HOWTO zu Regularexpressions und Python:
http://www.amk.ca/python/howto/regex/


Dookie

Verfasst: Montag 31. Januar 2005, 13:24
von Leonidas
hammurabi 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?
Nimm doch die immer aktuellste Doku: http://docs.python.org/lib/re-objects.html
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 8)

Verfasst: Donnerstag 17. Februar 2005, 20:34
von Gast
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, ....?

Verfasst: Donnerstag 17. Februar 2005, 20:35
von hammurabi
Der Gast war ich :roll:

Verfasst: Freitag 18. Februar 2005, 21:02
von Leonidas
Anonymous hat geschrieben:Was ihr mir raten könnt ist das Format für die Anzeige: pdf, html, ....?
Wie wärs mit reST?

Verfasst: Freitag 18. März 2005, 00:02
von Gast
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?