bestimmten Ordner suchen

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.
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

weil ich in der Doku nicht das richtige finde.
os.getmtime funktioniert nicht oder ich wende es falsch an Man Python is einfach nur Kompliziert.....
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Wenn Python so kompliziert ist, hätte ich hier drei einfache Links für dich:
fileatime, filemtime, filectime
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

eyescube hat geschrieben:weil ich in der Doku nicht das richtige finde.
os.getmtime funktioniert nicht oder ich wende es falsch an Man Python is einfach nur Kompliziert.....
os.getmtime funktioniert deshalb nicht, weil es os.getmtime nicht gibt. os.path.getmtime hingegen gibt es.

Ich habe den Eindruck gewonnen, dass du zu schnell zu viel willst. Du möchtest dich nicht damit beschäftigen, aber du möchtest trotzdem Ergebnisse. So funktioniert Softwareentwicklung nicht. Du musst verstehen, was du da tust. Wenn du einfach nur wild irgendwelche Codeschnipsel zusammenwirfst, dann kann das vielleicht ausnahmsweise funktionieren, aber es hilft dir nicht weiter, weil du dann überhaupt nicht verstanden hast was du da machst.

Ich gehe mal hoffnungsvoll davon aus, dass du das Tutorial bereits durchgearbeitet hast und daher die grundlegenden Konzepte von Python kennst. Jetzt schau dir einfach mal ganz in Ruhe die Funktionen in os.path an. Damit solltest du eigentlich gut klar kommen. Wenn nicht, dann frag hier bitte gezielt nach.

Deiner Aussage, dass Python kompliziert ist, kann ich übrigens nicht zustimmen. Ich halte Python für äußerst leicht verständlich. Ich habe lange Jahre auch in PHP Software geschrieben, die Hässlichkeit dieser Sprache hat mich aber im Lauf der Zeit dermaßen frustriert, dass ich mir etwas Schöneres und Durchdachteres gesucht habe: Python.
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

hm mag sein
ja ich guggs mir mal an
und ja hab paar tutorials durch es is halt nur so ich muss ne Arbeit drüber schreiben :/
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

ich hab mir nun die Codes von
http://de.w3support.net/index.php?db=so&id=168409 angesehn nette Seite.
Und jeden Befehl angesehn so,
nun hab ich mich entschieden für

Code: Alles auswählen

t=([(x[0], time.ctime(x[1].st_ctime))
for x in sorted([(fn, os.stat(fn)) for fn in os.listdir(".")], key = lambda x: x[1].st_ctime)])
und gib mit print x aus.
die ausgabe würd ich nun gern splitten und erneut in ne Variable speichern.
versucht hab ichs mal so:
print x.split(",")
dabei kam dann folgender Fehler:
python lastfile1.py
Traceback (most recent call last):
File "lastfile1.py", line 12, in <module>
print x.split(",")
AttributeError: 'tuple' object has no attribute 'split'
mach ich irgendwie beim splitten was verkehrt oder kann man dies nicht mit print zusammenfügen?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Warum hast du nicht eine schönere Version genommen? Genug auswahl gab es ja.
eyescube hat geschrieben:AttributeError: 'tuple' object has no attribute 'split'
LESEN, ein "tuple" hat kein "split"-Attribut, da das eine String-Methode ist. Ein Tuple ist quasi schon gesplittet.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

ja hab mal alle Versionen angeguggt achsu na dann muss ich x anders ausgeben lassn thx.
Benutzeravatar
snafu
User
Beiträge: 6862
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich vermute, du willst:

Code: Alles auswählen

', '.join(x)
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

naja ich setz mich mal nochma hin un schreib wohl ne Funktion irgendwie denn ich bekomm die Datei des aktuellen Ordners nicht die Datei des Ordners Linux_Client.
in meiner vorherigen "Idee" hatte ich die Dateien nur ohne Datum sondern Namen sortiert nur woher soll die 4-5Festplatte wissen welches Script nun das Aktuelle überschreibt? ;)
mal sehn vll meld ich mich irgendwann später
bis denn achja un Xynon? in php hätt ichs schon seit 2 Tagen wohl fertig (wegen deiner Doku ausschnitte) da mir PHP wohl mehr liegt aber aufgeben tu ich trotz euer Kritik NIEMALS.
BlackJack

@eyescube: Du musst Dich vor allem mal hinsetzen und endlich mal ein Python-Tutorial durcharbeiten um die Grunddatentypen kennen zu lernen.

Brauchst Du die Zeitangabe denn überhaupt im Ergebnis oder nur die sortierten Namen? Falls es nur die Namen sind, dann ist die Frage nicht wie man Werte aus Tupeln holt, sondern Du solltest gar nicht erst Tupel erzeugen wo auch die Zeitangabe enthalten ist. Das setzt jetzt aber wieder voraus, dass Du den Quelltext, den Du Dir zusammen kopierst, auch *verstehst*. Und dazu müsstest Du a) Python und b) programmieren lernen. Das geht nicht von heute auf morgen, aber je eher Du damit anfängst um so besser.
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

BlackJack sicher wäre das Datum zu sortieren denn das Script führt sonst ne Datei aus zuerst Up20113 und wenn aber die Aktuellste mit ABC465 beginnt dann wird trotzdem die UP20113 verwendet deswegen möcht ichs noch nach Datum sortieren damit da nix schief läuft falls ich in Zukunft weiter scripte ;D
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

eyescube hat geschrieben:bis denn achja un Xynon? in php hätt ichs schon seit 2 Tagen wohl fertig
:shock: Wo genau siehts du eigentlich den großen Unterschied? Du hantierst hier mit Pfadangaben und Dateien rum, womit du einfach Probleme hast. Wenn du die Grundlagen für solcher doch eher schlichten Dinge nicht kennst, kann ich mir nicht vorstellen das das in irgendeiner Programmiersprache etwas wird.
Ich lasse mich natürlich gerne vom Gegenteil überzeugen, dennoch macht es den Eindruck wie BlackJack schon mehrfach gesagt hat, dass du eigentlich absolut keine Ahnung hast von dem was du "programmierst".
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

manchma wenn mir langweilig is und ich zu viel Freizeit hab Code ich sehr viel in PHP.
ich weis es auch net die "MODUL"-Seite von Python verwirrt mich weil du für jeden Pfiffkäse nen anderen Befehl brauchst.
wenn man sich allein os ansieht is das sehr mächtig....
warscheinlich liegts daran das mir die Bibliothek zu groß is.
was weis ich os.path.getmtime is auch nid das richtige denn da muss man ja Pfad angeben aber nicht die Datei also ich verzweifel langsam we rmir ne Lösung schickt kriegt 50 euro Danke.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

eyescube hat geschrieben:was weis ich os.path.getmtime is auch nid das richtige
Wie machst du es denn in PHP? Denn der Unterschied von Python zu PHP zum Zeit auslesen ist, wie ich weiter vorne schon mal gelinkt hatte nur "file" statt "get" im Prefix der Rest ist genau das gleiche.
eyescube hat geschrieben:aber nicht die Datei also ich verzweifel langsam we rmir ne Lösung schickt kriegt 50 euro
Leg mir eine PHP-Lösung vor und ich überleg es mir :P
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

warum soll ich dir noch was vorlegen wenn mich hier jeder für UNFÄHIG hält.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

@eyescube
Niemand hält dich hier für Unfähig, nur für unwillens dich mit deinem Problem wirklich auseindander zusetzen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

ja ok ich ratter dir Nachmittags den Code rein.
Benutzeravatar
snafu
User
Beiträge: 6862
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

eyescube hat geschrieben:ich weis es auch net die "MODUL"-Seite von Python verwirrt mich weil du für jeden Pfiffkäse nen anderen Befehl brauchst.
wenn man sich allein os ansieht is das sehr mächtig....
warscheinlich liegts daran das mir die Bibliothek zu groß is.
Du sollst es ja auch nur mal gesehen haben und nicht auswendig lernen. Selbst wenn man nicht jede Funktion einzeln ausprobiert, aber zumindest im Kopf hat, dass es was zu dem Thema X in Modul Y gibt, hilft das schon viel. Da kann das Wissen dann meist schnell wieder abgerufen werden, wenn man das in nem dreiviertel Jahr doch nochmal benötigt.

Und bitte schreib deine Beiträge doch unter Beachtung von Groß- und Kleinschreibung sowie den nötigen Satzzeichen. Es ist einfach bequemer zu lesen als dieser Chat-Stil.
BlackJack

@eyescube: Ich verstehe Deine Antwort nicht wirklich, beziehungsweise habe ich das Gefühl Du hast meine Frage nicht verstanden. Mir ist klar, dass Du die Dateinamen nach Dateidatum sortieren willst. Die Frage ist, ob Du im sortierten Ergebnis nur die Namen brauchst oder auch die Zeit nach der sortiert wurde. Wenn Du die Zeit nach dem sortieren nicht mehr benötigst, dann lass sie halt aus dem Ergebnis raus.

Bei `os.path.getmtime()` muss man das angeben von dem man die Zeitangabe haben möchte. Wenn es eine Datei ist, dann halt den Pfad unter dem diese Datei zu erreichen ist. Nur der Dateiname geht nicht, wenn die Datei nicht im aktuellen Arbeitsverzeichnis liegt. Das ist aber bei PHP und jeder anderen Programmiersprache genau so.

Das mit der Grösse des Moduls ist Unsinn. Die PHP-Webseite listet unter der Rubrik `filesystem` 81 Funktionen. `os` und `os.path` zusammen enthalten nur 61 Funktionen. Viele der Funktionen heissen bei beiden Programmiersprachen sogar gleich, weil es in beiden Fällen oft nur "Wrapper" für C-Funktionen mit den gleichen Namen sind. Das Problem, welches Du lösen musst, stellt sich in beiden Sprachen auch gleich, d.h. Du musst in beiden Sprachen auch im Grund die gleichen Schritte zur Lösung durchführen.

"Für jeden Pfiffkäse nen anderen Befehl" ist in diesem Kontext ja schon fast witzig, wenn man bedenkt, dass man in PHP für diese Aufgabe eine der vielen Sortierfunktionen braucht, wo man in Python mit zweien auskommt -- der `sorted()`-Funktion und der `sort()`-Methode auf Listen -- die sich nur im Ergebnis unterscheiden, aber sonst die gleiche Schnittstelle bieten. Ansonsten verstehe ich nicht was Du erwartest -- eine Funktion die alles kann!? Wie soll das denn funktionieren?

Also zumindest ich halte Dich für unfähig. Und genau darum solltest Du vielleicht mal zeigen dass Du es nicht bist.

@Xynon1: Ich bilde mein Urteil übrigens nicht nur auf den sechs Tagen in denen eyescube *diesmal* hier unterwegs ist. Das ist bereits der dritte Name mit den selben Problemen zum selben Code und dem selben Verhalten. Die Lernresistenz besteht schon seit August letzten Jahres.
eyescube
User
Beiträge: 56
Registriert: Mittwoch 6. April 2011, 06:58

moah ich bins langsam echt satt
ich VERSTEH einfach Python und die Doku nicht un trotzdem WILL ichs lernen wenn du mich für Unfähig hältst DANN lass es gefälligst bleibn man.
Hab besseres zu tun als mich dauernd rechtzufertigen.
Meiner Meinung nach komm ich da noch besser mit C++ klar von der Syntax und dem Rest nur was bringts glaubste mir macht das Spaß hier? ich hab 5 Fehler zu debuggen in meinem anderen Code und eine Funktion heut geschrieben. und ich will aber mehr schaffen als nur eine Sache.
Antworten