Seite 2 von 4

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 15:47
von m477hi45
lunar hat geschrieben:@m477hi45: Ja und? Meine Anmerkung bezog sich auf den von Dauerbaustelle gezeigten Quelltext, der fehlerhaft ist, weil er Bilder nicht als Binärdateien behandelt. Korrekterweise müsste "wb" als Modus beim Öffnen der Datei angegeben werden. Unter Unix ist das zwar egal, unter Windows aber nicht.
tut leid ^^ ich hab seinen nicknamen nicht gelesen.. und dachte du meinst netterweise dieses Projekt, mit "Dauerbaustelle"

lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 15:49
von m477hi45
cofi hat geschrieben:
m477hi45 hat geschrieben:Ob es sich um Windows oder Linux handelt muss trozdem abgefragt werden, weil ja windows Backslash's und Linuxs Slashs verwendet..
Es gibt `os.path.join` und `os.path.sep`.

Danke ;)

"os.path.sep" werd ich jetzt einbauen !

lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 15:53
von m477hi45
Ich hätt jetzt nur ein Problem mit folgender IF Abfrage:

Code: Alles auswählen

if language != "en" and language != "de" and language != "fr" and language != "nl" and language != "es" and language != "pt" and language != "it" and language != "tr" and language != "sl" and language != "cs":
    print "Please enter a valid country code - e.g. 'de', 'en',.."    
Also gibt es einen Weg das kürzer dazustellen ? (da sollen sogar noch mehr sprach-codes dazu kommen)

lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 16:15
von EyDu

Code: Alles auswählen

>>> languages = set(("en", "de", "it"))
>>> "argh" not in languages
True
>>> "en" not in languages
False

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 16:35
von m477hi45
EyDu hat geschrieben:

Code: Alles auswählen

>>> languages = set(("en", "de", "it"))
>>> "argh" not in languages
True
>>> "en" not in languages
False

Vielen Dank ;)

Hab ich gerade eingebaut !

lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 16:42
von m477hi45
Wie kann ich denn einen Try Befehl am besten einbauen, dass das Programm nicht einfach abstürzt, wenn keine Internetverbindung besteht ?

bei "f = urllib.urlopen(URL)"
kommt ohne Internetverbindung natürlich immer gleich ein Fehler..

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 17:09
von Dav1d
Wieso ein set? :shock:
Ich würde ein Tuple nehmen.

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 17:20
von DasIch
Der in-Operator hat lineare Laufzeit auf Sequenzen während sie Konstant auf sets ist.

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 18:51
von BlackJack
Wobei man da natürlich auch schauen muss wie oft das `set()` abgefragt wird. Wenn das im ganzen Programmverlauf nur einmal befragt wird, ist es natürlich effizienter eine Liste oder ein Tupel zu verwenden als erst ein `set()` mit den Daten zu füllen.

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 19:25
von m477hi45
BlackJack hat geschrieben:Wobei man da natürlich auch schauen muss wie oft das `set()` abgefragt wird. Wenn das im ganzen Programmverlauf nur einmal befragt wird, ist es natürlich effizienter eine Liste oder ein Tupel zu verwenden als erst ein `set()` mit den Daten zu füllen.
Also das ganze wird eigentlich nur einmal abgefragt..

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 20:12
von m477hi45
Hier einmal auch der aktuelle Code:

http://paste.pocoo.org/show/z6Te4ozBOAla57PLFEWd/

lg
;)

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 20:37
von gkuhl
Es wäre vielleicht ganz gut den Code in einzelne Funktionen zu packen.

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 21:01
von m477hi45
gkuhl hat geschrieben:Es wäre vielleicht ganz gut den Code in einzelne Funktionen zu packen.
oke.. nur was genau ?

ich verstehe den Sinn von Funktionen, wenn bestimmter Code öfter als 1x ausgeführt wird..
aber eigentlich, wird ja alles ganz linear abgearbeitet, ohne wesentliche wiederholungen..

hätten da funktionen viel sinn ?


lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 21:14
von BlackJack
Na mindestens mal eine Funktion um das alles von der Modulebene wegzubekommen, und die dann mit dem ``if __name__ == '__main__':``-Idiom aufrufen, damit man das auch als Modul importieren zu können ohne das es gleich ausgeführt wird.

Dann kann man da sicher einzelne Schritte auf Funktionen aufteilen, so dass man einzelne Teile auch separat testen kann. Ausserdem könnte man Benutzerinteraktion von Programmlogik trennen.

Das `string`-Modul wird ja immer noch verwendet!?

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 21:23
von Dauerbaustelle
lunar hat geschrieben:@Dauerbaustelle: Bilder sind Binärdateien :)
Hatte aber auch so funktioniert. Liegt wohl daran, dass unter Unix/Linux es da keinen Unterschied gibt.

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 21:32
von m477hi45
BlackJack hat geschrieben:Na mindestens mal eine Funktion um das alles von der Modulebene wegzubekommen, und die dann mit dem ``if __name__ == '__main__':``-Idiom aufrufen, damit man das auch als Modul importieren zu können ohne das es gleich ausgeführt wird.

Dann kann man da sicher einzelne Schritte auf Funktionen aufteilen, so dass man einzelne Teile auch separat testen kann. Ausserdem könnte man Benutzerinteraktion von Programmlogik trennen.

Das `string`-Modul wird ja immer noch verwendet!?

Wie kann ich denn das "String" Modul genau ersetzen ?

lg

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 21:57
von Hyperion
m477hi45 hat geschrieben: Wie kann ich denn das "String" Modul genau ersetzen ?
Indem man die Methoden eines String-Objektes aufruft?

Code: Alles auswählen

In [1]: "Hallo".lower()
Out[1]: 'hallo'

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 22:14
von m477hi45
Hyperion hat geschrieben:
m477hi45 hat geschrieben: Wie kann ich denn das "String" Modul genau ersetzen ?
Indem man die Methoden eines String-Objektes aufruft?

Code: Alles auswählen

In [1]: "Hallo".lower()
Out[1]: 'hallo'
oke danke ;)

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 22:19
von m477hi45
Ich hab das ganze auch gleich zur Länder Code Abfrage dazugegeben..

Code: Alles auswählen

language = raw_input('Enter the language of the user\'s profil: [de, en, fr, ..]: ')

language = language.lower()
language = language.strip()
Also kann man statt "de" jetzt auch " DE" schreiben ;)

Re: NETLOG Profilbild Download-Manager

Verfasst: Montag 31. Mai 2010, 22:31
von Hyperion
Man kann die Methoden auch kaskadierend aufrufen (da diese jeweils einen neues String-Objekt zurückliefern):

Code: Alles auswählen

In [1]: "  Hallo".strip().lower()
Out[1]: 'hallo'
Und jetzt rate mal, was Dir raw_input() liefert und was man da nun machen könnte ;-)