mein erstes Programm - brauche Rat!

Du hast eine Idee für ein Projekt?
Yasser

mein erstes Programm - brauche Rat!

Beitragvon Yasser » Mittwoch 26. Januar 2005, 15:01

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 26. Januar 2005, 15:10

Ja, das ist ja kein Problem, einfach realisierbar, sofern du die TeX Datei bearbeiten kannst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Mittwoch 26. Januar 2005, 15:42

ja, alles bis zum tex dokument...von tex zu pdf gibts ja bestimme progs.

also dann, viel glück :)
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Mittwoch 26. Januar 2005, 16:34

Hi Yasser,

mittels Reportlab kannst du auch direkt aus Python pdfs erzeugen.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
hammurabi
User
Beiträge: 13
Registriert: Mittwoch 26. Januar 2005, 14:27

Beitragvon hammurabi » Donnerstag 27. Januar 2005, 00:28

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!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 27. Januar 2005, 13:43

Darf ich auch ein paar Stilistische Anmerkungen machen?

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 Modvoice
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 27. Januar 2005, 14:14

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

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 27. Januar 2005, 14:19

Und die Variablennamen etwas länger wählen als einen Buchstaben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
hammurabi
User
Beiträge: 13
Registriert: Mittwoch 26. Januar 2005, 14:27

Beitragvon hammurabi » Donnerstag 27. Januar 2005, 14:31

Heute Abend mache ich weiter und werde mir hoffentlich noch ein paar Tipps abholen können.
Danke! :D
hammurabi
User
Beiträge: 13
Registriert: Mittwoch 26. Januar 2005, 14:27

Beitragvon hammurabi » Freitag 28. Januar 2005, 19:16

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)
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Freitag 28. Januar 2005, 19:31

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

Code: Alles auswählen

#!/usr/bin/env python
import this
hammurabi
User
Beiträge: 13
Registriert: Mittwoch 26. Januar 2005, 14:27

Beitragvon hammurabi » Freitag 28. Januar 2005, 21:36

Dieses Forum könnte maßgeblich daran beteiligt sein, dass mich Python über die anfängliche Zeit des Übereifers hinaus begeistern wird :)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 28. Januar 2005, 21:38

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)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
hammurabi
User
Beiträge: 13
Registriert: Mittwoch 26. Januar 2005, 14:27

Beitragvon hammurabi » Sonntag 30. Januar 2005, 22:59

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?
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Montag 31. Januar 2005, 00:31

Es gibt auch noch ein HOWTO zu Regularexpressions und Python:
http://www.amk.ca/python/howto/regex/


Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder