so ein nonsens

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

so ein nonsens

Beitragvon Gast » Donnerstag 22. April 2004, 20:39

hi zusammen!

folgende funktion, soll die zeit der letzten änderung aller dateien zurückgeben , die im verzeichnis gefunden werden.

Code: Alles auswählen

def checklastuse_all(url):
    import os
    result=[f for f in os.listdir(url) if f.endswith('.htm')]
    for i in result:
        timeresult=os.path.getmtime(url+i)
        print i, timeresult


ausschnitt aus dem ergebnis:

Code: Alles auswählen

php.htm 1080688457
quellen.htm 1082477946
studie.htm 1080666462
test.htm 1071824640
testbspjs2.htm 1071824640
vorlage.htm 1071824640
vorlageb.htm 1071824640
vorwort.htm 1075027200
wygiwym.htm 1071824640
wysiwyg.htm 1071824640

die zahlen sollen angeblich sekunden sein, dividiert durch 3600 kommen so fantastische werte raus wie z.b

Code: Alles auswählen

>>> 1071824640 / 3600
297729


kann ja nur ein unsinn sein.

was läuft da also falsch?

mfg

rolgal
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Donnerstag 22. April 2004, 20:50

Hi. Nur kurz eine Frage: du hast noch nie groß mit Zeit und Datum in Python gearbeitet, oder? :lol: Net böse verstehen, aber das sind timestamps in Sekunden und repräsentieren nicht die Zeit seit der letzten Änderung, sondern die Zeit der letzten Änderung in Sekunden seit der Epoche (1.1.1970 00:00 UTC). Im Modul time findest du viele Funktionen um damit zu rechnen, z.B. gmtime, localtime, mktime, strftime, etc... aber Vorsicht: Umwandlungen zwischen Sekunden und zugehöhrigen Datum/Uhrzeit haben aufgrund Sommerzeit und localer Ortszeit ihre Tücken...

Milan
Gast

Beitragvon Gast » Donnerstag 22. April 2004, 20:57

hi milan!

aha! na gut, wofür das auch immer gut sein soll.

wie rechne ich das ergebnis um, um zu dem gewünschten ergebnis zu kommen?

mfg

rolgal
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 22. April 2004, 21:29

Hi rolgal,

welches Ergebnis ist erwünscht?


Gruß

Dookie
Gast

Beitragvon Gast » Donnerstag 22. April 2004, 21:36

hallo dookie!

ich will eben die zeit seit der letzten änderung in stunden,

z.b. datei x wurde vor 2 stunden geändert.

aha, die selbe datei im archiv wurde aber vor 48 stunden geändert.

du erinnerst worüber wir heute geredet haben, oder?


, sondern die Zeit der letzten Änderung in Sekunden seit der Epoche (1.1.1970 00:00 UTC).


wofür soll das denn gut sein. ich versteh es nicht mal so sinnlos erscheint es mir!

aber ich steh wohl am schlauch.


:D :D

mfg

rolgal
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 22. April 2004, 22:41

Hi rolgal,

du willst also wissen wieviel Zeit seit der letzten Änderung vergangen ist, und nicht die den Zeitpunkt der letzten Änderung!
Das ist ein Riesen Unterschied oder nicht ;)

Code: Alles auswählen

def checklastuse_all(url):
    import os, time
    result=[f for f in os.listdir(url) if f.endswith('.htm')]
    for i in result:
        timeresult=int(time.time()-os.path.getmtime(url+i))
        print i, timeresult/3600



Gruß

Dookie
----------
Zeit ist eben relativ ;)
Gast

Beitragvon Gast » Donnerstag 22. April 2004, 23:06

hi dookie!

ich lass mich jetzt lieber nicht auf eine diskussion bez. zeit ein.

zeit war mir immer schon ein rätsel, bis auf die tatsache, dass ich zu wenig davon habe.

wenn du genug davon haben solltest, könntest du doch noch mal das ganze näher erläutern :D :D

danke einstweilen

mfg

rolgal
Gast

Beitragvon Gast » Donnerstag 22. April 2004, 23:31

hi nochmal!

allesklar, hat geklingelt, laut und deutlich,...

danke nochmal

mfg

rolgal
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 22. April 2004, 23:40

Hi rolgal,

ansonst könnte ich dir auch noch folgendes Buch empfehlen:
Die illustrierte Kurze Geschichte der Zeit von Stephen W. Hawking ;)

Gruß

Dookie
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Freitag 23. April 2004, 14:59

rolgal hat geschrieben:
, sondern die Zeit der letzten Änderung in Sekunden seit der Epoche (1.1.1970 00:00 UTC).


wofür soll das denn gut sein. ich versteh es nicht mal so sinnlos erscheint es mir!


Hi. Soweit ich weiß, ist das historisch bedingt, denn irgend einen Standart um Zeitdaten zu speichern brauch man nunmal. Und der ist nun mal die Zeitzählung in Sekunden seit da. Ob es nun 1970 oder sonstwann war ist doch egal, wichtig ist, dass ein konkreter Wert festgelegt wurde. Mit gmtime bzw localtime kannst du das zu einem Zeittupel umrechnen lassen (schau dir am besten mal die Doku dazu an) und mit strftime das ganze in einem beliebigen Format ausgeben. strptime ist übrigens das genaue Gegenteil: von einem beliebigen Format (string) in ein Zeittupel umrechnen.

Milan
Gast

Beitragvon Gast » Sonntag 25. April 2004, 11:12

hi milan!

danke nochmal für die erklärung, aber es ist mir jetzt schon klar.

bei der funktion

Code: Alles auswählen

getmtime


hätte man das vielleicht doch gleich anders lösen können.

was anderes an der stelle:

wollte nur mal sagen, dass ich offensichtlich nicht mehr über alle antworten informiert werde.
ich habe diese antwort von dir nur zufällig gesehen.

mfg

rolgal
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 25. April 2004, 11:58

Hi rolgal,

hätte man das vielleicht doch gleich anders lösen können.


und wie?


Gruß

Dookie
Gast

Beitragvon Gast » Sonntag 25. April 2004, 12:02

hi dookie!

indem mir die funktion gleich das zurückgibt was ich wollte.

dann müsste sie wohl aber anders heissen.

wenn es funktionen gibt, die uns gleich einen nützlichen zeitwert ausgeben, warum sollte das dann hier net gehen?

mfg

rolgal
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 25. April 2004, 12:11

Hi rolgal,

die Funktionen von Python haben ihre Entsprechungen in einer lib für c. Auch dort gibt gmtime den Wert in Sekunden seit dem 1.1.1970 aus. Hat auch seinen Sinn, so kann Code einfacher von einer Sprache in die Andere portiert werden.
Woher sollten die Entwickler von Python wissen, was du gerne hättest das die Funktion zurückgibt?


Gruß

Dookie
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Sonntag 25. April 2004, 12:13

rolgal hat geschrieben:wenn es funktionen gibt, die uns gleich einen nützlichen zeitwert ausgeben, warum sollte das dann hier net gehen?


Hi. Ich glaube jetzt hast du dich verzettelt... Mach mal ein Beispiel für einen nützlichen Zeitwert, mit dem du dann alles genauso gut anstellen kannst, wie jetzt.

Milan

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder