Textbausteine Word

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mountain
User
Beiträge: 5
Registriert: Freitag 19. Januar 2018, 16:09

Hallo Leute,
beschäftige mich erst seit einigen Tagen mit Python und bin sehr positiv erstaunt über die Möglichkeiten. Genial :)
Zu meiner Aufgabenstellung:
Möchte in einem Fenster (Tkinter) bestimmte Daten eingeben können und man soll das Verzeichnis der Wordtemplats (filedialog.askopenfilename) und des Speicherorts der beschriebenen Dateinen (filedialog.askopenfilename) auswählen können. Die Eingabe soll dann überprüft werden in dann in Textbausteinen in verschiedenen Wordtemplates hineingeschrieben und die Dateien abgeschpeichert werden in jenem Ordner, welcher zuvor ausgewählt wurde.
Nun zu meiner Frage:
-Wie kann ich bestimmte Textbausteine in einer Worddatei ansprechen?

Vielen Dank für euerer Hilfe.
Vielleicht habt ihr noch zusätzliche Tipps oder Anregungen zur Lösung des Problems mit Python.

Grüße
Benutzeravatar
pixewakb
User
Beiträge: 1409
Registriert: Sonntag 24. April 2011, 19:43

Google mal "python und microsoft word" - also 2. Eintrag ist ein Video zum Thema Templates in Word und erster Eintrag war ein Modul, um Word anzusprechen...
Mountain
User
Beiträge: 5
Registriert: Freitag 19. Januar 2018, 16:09

Oh super, vielen Dank für den Tipp.
Bei meiner ersten Suche hatte ich nicht "passendes" gefunden...uff :roll:
Durch deinen Tipp bin ich auf diesen Link gekommen: http://pbpython.com/python-word-template.html
Werde es gleich mal versuchen.
Danke nochmals :wink:
Mountain
User
Beiträge: 5
Registriert: Freitag 19. Januar 2018, 16:09

Für meine Dateneingabe brauche ich Eingagbefelder. Habe unter andeem diese Seite gefunden: https://www.python-kurs.eu/tkinter_entry_widgets.php. Da ich für meine Aufgabenstellung mehrere Eingabefelder brauche, fand ich das Skript auf der gleichen Seite interessant. Schade, dass es nicht kommentiert ist. Somit verstehe ich den Code nicht. Könnte mir jemand helfen den Code zu verstehen. Wäre euch sehr dankbar.

Code: Alles auswählen

#!/usr/bin/python3

from tkinter import *
fields = 'Last Name', 'First Name', 'Job', 'Country'

def fetch(entries):
   for entry in entries:
      field = entry[0]
      text  = entry[1].get()
      print('%s: "%s"' % (field, text)) 

def makeform(root, fields):
   entries = []
   for field in fields:
      row = Frame(root)
      lab = Label(row, width=15, text=field, anchor='w')
      ent = Entry(row)
      row.pack(side=TOP, fill=X, padx=5, pady=5)
      lab.pack(side=LEFT)
      ent.pack(side=RIGHT, expand=YES, fill=X)
      entries.append((field, ent))
   return entries

if __name__ == '__main__':
   root = Tk()
   ents = makeform(root, fields)
   root.bind('<Return>', (lambda event, e=ents: fetch(e)))   
   b1 = Button(root, text='Show',
          command=(lambda e=ents: fetch(e)))
   b1.pack(side=LEFT, padx=5, pady=5)
   b2 = Button(root, text='Quit', command=root.quit)
   b2.pack(side=LEFT, padx=5, pady=5)
   root.mainloop()
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Mountain: vergiss auch gleich wieder, dass es die Seite python-kurs.eu gibt, da wird sehr falsches und sehr schlechtes Python vermittelt. Du hast immerhin das Beispiel gefunden, wo auf globale Variablen verzichtet wird. Dagegen vermeide *-Importe, da hat man nicht unter Kontrolle, was alles in den eigenen Namensraum importiert wird. Üblicherweise schreibt man `import tkinter as tk` und spricht alle tk-Namen über tk.xxx an. Eingerückt wird generell mit 4 Leerzeichen pro Ebene, nicht 3.

Was verstehst Du konkret nicht? Für GUI-Programmierung braucht man eigentlich schon gute OOP-Kenntnisse, ist also nicht das beste Thema zum Einstieg.
Mountain
User
Beiträge: 5
Registriert: Freitag 19. Januar 2018, 16:09

@Sirius3: Vielen Dank für deine Hinweise und Tipps. Wo bekomme ich deiner Meinung nach gute Infos zu Python? Auch das was die imports betrifft? Derzeit stöpere ich im www auf gut Glück umher und mache mir keine großen Gedanken wenn ich das Ergebnis stimmt. Wie ich dich aber jetzt verstanden habe gibt es bei den imports zb einiges zu beachten.
Habe den ganzen Quellcode nicht verstanden. Anscheinend sollte es mit dem Code "leicht" möglich sein viele Textfelder zu händeln aber ich verstehe nur Bahnhof... :shock: Kannst du mir ggf. einige Tipps geben wie ich das Problem (mehrere Texteingabefelder) elegant lösen könnte?
Danke.
Ich seit echt schnell beim sachlichen Antworten - super Forum!!!!
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Mountain: am besten fängst Du klein mit einem Eingabefeld an. Arbeite ein Grundlagentutorial durch, lerne die Grunddatentypen wie Wörterbuch und Listen kennen. Welche Quellen zum Lernen verwendest Du?
Mountain
User
Beiträge: 5
Registriert: Freitag 19. Januar 2018, 16:09

@Sirius3: Habe mich mit einem Eingabefeld bereits befasst. Wollte aber nicht zu viel Zeit damit verlieren, denn wie bereits erwähnt brauche ich für mein Projekt mehrere Eingabefelder und wollte das ganze ellegant lösen. So bin ich auf den Link https://www.python-kurs.eu/tkinter_entry_widgets.php gekommen.
Habe derzeit keine speziellen Quellen. Nur google und das Buch "Routineaufgaben mit Python automatisieren" und dieses super Forum.
Welche deutsche gute Literatur könntet ihr empfehlen?
Antworten