hatte ein jahr python in der schule und das is auch noch lange her
das vorne weg^^
hallo erstma,
habe vor ein programm zu schreiben, dass bei jedem start von windows einen satz ausgibt (in diesem fall soll es ein witz sein)...
dazu muss ich wissen:
1. wie bekomme ich die witze in eine .dat datei oder ahnlichem, sodass der user sie nicht vorne weg lesen kann
2. wie gibt mein programm zufällig einen dieser witze aus
und 3. wie bekomme ich anschliessend dieses programm in den autostart von windows? (wie ich eine pyw/py datei in exe umwandle weiss ich!)
sehr viel ich weiss, mir ist es aber wichtig, wäre wirklich sehr nett wenn ihr mir helfen könntet, mfg
skunkk!
Random für kleine taxt ausgaben
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi skunkk!skunkk90 hat geschrieben:1. wie bekomme ich die witze in eine .dat datei oder ahnlichem, sodass der user sie nicht vorne weg lesen kann
2. wie gibt mein programm zufällig einen dieser witze aus
Das mit den Witzen könnte so funktionieren:
Code: Alles auswählen
#!/usr/bin/env python -O
# -*- coding: iso-8859-1 -*-
import base64
import random
import os.path
import shelve, pickle
FILENAME = r"witze.dat"
def main():
# Witze schreiben, falls noch nicht vorhanden (base64-verschlüsselt)
if not os.path.isfile(FILENAME):
dat = shelve.open(FILENAME, "c", pickle.HIGHEST_PROTOCOL)
witze = (
(
"Das ist der erste Witz.\n"
"Mit Zeilenumbruch."
),
"Das ist der zweite Witz",
"Das ist der 3 Witz",
"Das ist der 4 Witz",
"Das ist der 5 Witz",
"Das ist der 6 Witz",
"Das ist der 7 Witz",
"Das ist der 8 Witz",
)
for witz in witze:
dat[base64.b64encode(witz)] = False
dat.close()
# Witze einlesen
dat = shelve.open(FILENAME, "w", pickle.HIGHEST_PROTOCOL)
witze = []
for witz, erzaehlt in dat.iteritems():
if not erzaehlt:
witze.append(base64.b64decode(witz))
# Zufallswitz ausgeben
if witze:
witz = random.choice(witze)
print witz
# Zufallswitz als "erzaehlt" markieren
dat[base64.b64encode(witz)] = True
else:
print "Es wurden alle Witze erzaehlt"
dat.close()
if __name__ == "__main__":
main()
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- skunkk90
- User
- Beiträge: 57
- Registriert: Donnerstag 1. Juni 2006, 20:38
- Wohnort: F:\Homeverzeichnis.zip
- Kontaktdaten:
omg...
also dass des mit python lang her is weisste ja^^
puh des is ganz shcön viel tuback uff einma, ich denke wir sollten des in einzelnen schritten machen
also ich denke der erste schritt sollte sein wie ich die ca. 200 witze erstma dem programm eingebe, in eine datei, die der benutzer nicht öffnen kann!
denn ich verstehe zB diese sachen wie shelve und base64 und sowas gar nicht
danach solltest du mir des random erklären, schliesslich soll bei jedem start von windows EIN witz zufällig ausgegeben werden....
also mir ist als erstes diese sache mit dem einlesen wichtig, was base64 bedeutet etc.
wär sehr nett von dir
also dass des mit python lang her is weisste ja^^
puh des is ganz shcön viel tuback uff einma, ich denke wir sollten des in einzelnen schritten machen

also ich denke der erste schritt sollte sein wie ich die ca. 200 witze erstma dem programm eingebe, in eine datei, die der benutzer nicht öffnen kann!
denn ich verstehe zB diese sachen wie shelve und base64 und sowas gar nicht

danach solltest du mir des random erklären, schliesslich soll bei jedem start von windows EIN witz zufällig ausgegeben werden....
also mir ist als erstes diese sache mit dem einlesen wichtig, was base64 bedeutet etc.
wär sehr nett von dir

Humor ist, wenn man trotzdem lacht!
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi skunkk!skunkk90 hat geschrieben:puh des is ganz shcön viel tuback uff einma, ich denke wir sollten des in einzelnen schritten machen
Hier habe ich Lesestoff für dich. Das solltest du dir auf jeden Fall ansehen.
- http://www.python-forum.de/topic-6157.html
- http://docs.python.org/lib/module-shelve.html
- http://docs.python.org/lib/module-base64.html
- http://docs.python.org/lib/module-random.html
Danach kannst du hier die Fragen stellen, die noch offen geblieben sind.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- skunkk90
- User
- Beiträge: 57
- Registriert: Donnerstag 1. Juni 2006, 20:38
- Wohnort: F:\Homeverzeichnis.zip
- Kontaktdaten:
Meine Funny Startup.pyw
witze.dat:
save.py
read.py
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import*
from ScrolledText import*
from random import*
import os
hf=Tk()
hf.iconbitmap('favicon.ico')
frame1=Frame(hf,width=300,height=175)
frame1.pack()
hf.title("Funny Startup! Hallo!")
def close():
hf.destroy()
def link():
os.startfile("http://www.skunkk-online.de.vu")
def start():
### Wie setze ich Random hier ein, dass von der Datei (witze.dat)
### ein Witz zufällig im ausgabefeld ausgegeben wird?
a=???
closebutton=Button(frame1,command=close, text="Beenden",width=20)
closebutton.place(x=2,y=150)
ausgabefeld=ScrolledText(frame1,width=45,height=8)
ausgabefeld.place(x=2,y=2)
offnenbutton=Button(frame1,command=start, text="Ich will noch 'nen Witz",width=20)
offnenbutton.place(x=2,y=125)
linkbutton=Button(frame1,text="powered by\nwww.skunkk-online.de.vu",command=link,width=24,height=3,relief="flat",font=("Arial",7,"underline"))
linkbutton.place(x=140,y=125)
hf.mainloop()
save.py
Code: Alles auswählen
s= "Das ist der erste Witz!\n"\
"Das ist der zweite Witz!\n"\
"Das ist der dritte Witz!\n"
f=file("witze.dat","w")
f.write(s)
f.close()
Code: Alles auswählen
f = file("witze.dat", "r")
lines = f.readlines()
f.close()
print lines
dummy=raw_input()
Humor ist, wenn man trotzdem lacht!