NETLOG Profilbild Download-Manager

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Unter windows existiert doch noch

Code: Alles auswählen

os.environ.get('USERPROFILE')
the more they change the more they stay the same
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

EyDu hat geschrieben:
snafu hat geschrieben:Hier mal der Versuch, alle Möglichkeiten zum Finden des Home-Pfads auszuschöpfen:
Man könnte auch noch folgendes versuchen:

Code: Alles auswählen

os.path.expanduser('~')

Danke, auf das selbe bin ich gestern auch gekommen und habe es in der 0.6 Version jetzt
drinnen ;)
Ob es sich um Windows oder Linux handelt muss trozdem abgefragt werden, weil ja windows Backslash's und Linuxs Slashs verwendet..
Hat wer ne Ahnung wies bei MAC aussieht ?

Nicht wundern> mit dieser Version habe ich auch gleich alles auf englisch übersetzt.



lg
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

lunar hat geschrieben:@Dauerbaustelle: Bilder sind Binärdateien :)
? jede datei ist eine Binärdatei!

wieso auch nicht ?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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`.
lunar

@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.
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

>>> languages = set(("en", "de", "it"))
>>> "argh" not in languages
True
>>> "en" not in languages
False
Das Leben ist wie ein Tennisball.
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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..
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Wieso ein set? :shock:
Ich würde ein Tuple nehmen.
the more they change the more they stay the same
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Der in-Operator hat lineare Laufzeit auf Sequenzen während sie Konstant auf sets ist.
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.
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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..
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

Hier einmal auch der aktuelle Code:

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

lg
;)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Es wäre vielleicht ganz gut den Code in einzelne Funktionen zu packen.
m477hi45
User
Beiträge: 33
Registriert: Sonntag 30. Mai 2010, 05:41

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
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!?
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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