Seite 1 von 1
					
				Dateien des aktuellen Tages erfassen und weiterverarbeiten
				Verfasst: Mittwoch 18. Juni 2008, 15:13
				von Kern
				Hallo,
bin neu in diesem Forum und muss euch direkt mit meiner ersten Frage quälen. Habe mich seit einigen Tagen in die Sprache Python eingelesen und versuche nun ein Programm zu schreiben. 
Das Programm soll aus einer Vielzahl von Log Dateien täglich die neusten nehmen, diese erfassen und ausgeben und anschließend über Mail weiterverschicken. 
Code: Alles auswählen
import os
liste=os.listdir ("/home/hkernbach/python/logs")
print liste
Damit hätte ich die Zusammenfassung der vorhandenen Dateien, auch schon nach Zeit, aufgrund der Dateinamen. Der nun folgende Zwischenteil ist für mich relativ problematisch. 
Mein primäres Problem dabei wäre, wie ich die Daten des aktuellen Tages erfassen. D.h.: Wie sage ich, dass das Programm heute erstelle Dateien ausfindig machen soll. Das anschließende erfassen und verschicken stellt kein Problem dar. 
MfG KeRn
Edit: Also Praktisch: Wenn heutiges Datum = Datum eines Objektes der Liste (an dem es erstellt wurde, dann erfasse dieses und schreibe es in "x".  
Anschließend muss der Inhalt von "x" ausgelesen werden und per Mail verschickt werden.
 
			
					
				Re: Dateien des aktuellen Tages erfassen und weiterverarbeit
				Verfasst: Mittwoch 18. Juni 2008, 16:31
				von gerold
				Kern hat geschrieben:Datum eines Objektes der Liste
Hallo Kern!
Willkommen im Python-Forum!
- ``os.path.getmtime`` --> 
http://docs.python.org/lib/module-os.path.html#l2h-2177
- ``os.path.getctime``
- ``os.path.getatime``
mfg
Gerold

 
			
					
				
				Verfasst: Mittwoch 18. Juni 2008, 18:17
				von Kern
				Danke für die schnelle Hilfe ! 

 
			
					
				
				Verfasst: Donnerstag 19. Juni 2008, 08:06
				von n4p
				kleine Frage am Rande.
Würde irgendwas dagegen sprechen das mit os.stat zu machen?
Hab gestern kurz geschaut und hätte das eigentlich so gemacht.
			 
			
					
				
				Verfasst: Donnerstag 19. Juni 2008, 08:28
				von gerold
				n4p hat geschrieben:kleine Frage am Rande.
Würde irgendwas dagegen sprechen das mit os.stat zu machen?
Hab gestern kurz geschaut und hätte das eigentlich so gemacht.
Hallo n4p!
Nein. ``os.path.getctime`` ist anders zu verwenden. Das ist alles.
Code: Alles auswählen
>>> import os
>>> os.path.getctime(r"J:\Ablage")
1155638598.796875
>>> import time
>>> time.localtime(os.path.getctime(r"J:\Ablage"))
(2006, 8, 15, 12, 43, 18, 1, 227, 1)
>>>
Code: Alles auswählen
>>> import os
>>> os.stat(r"J:\Ablage")
(16895, 0L, 0, 0, 0, 0, 0L, 1213860386, 1213718179, 1155638598)
>>> os.stat(r"J:\Ablage").st_ctime
1155638598.796875
>>> import time
>>> time.localtime(os.stat(r"J:\Ablage").st_ctime)
(2006, 8, 15, 12, 43, 18, 1, 227, 1)
>>>
mfg
Gerold

 
			
					
				
				Verfasst: Donnerstag 19. Juni 2008, 08:36
				von n4p
				Okay Dankeschön!  

 
			
					
				
				Verfasst: Montag 23. Juni 2008, 16:11
				von Kern
				So.. mein Programm ist soweit mehr oder weniger fertig. Nun habe ich aber noch eine Frage.
Ich weiß nicht wie ich phyton sagen soll, dass es in einem Ordner alle Dateien untersucht und nicht nur eine gezielte Datei. Für eine gezielte Datei funktioniert es super ! Danke an simplemail 

 
			
					
				
				Verfasst: Montag 23. Juni 2008, 16:20
				von Rebecca
				
gibt dir eine Liste mit Dateinamen.
 
			
					
				
				Verfasst: Montag 23. Juni 2008, 16:26
				von Kern
				Danke, aber das weiß ich, siehe mein erster Post 

Meine Frage ist, wie ich diese dann weiter anwende.
Ein simples Beispiel:
Ich hab einen Ordner. In dem Ordner befinden sich 10 Dateien. Jetzt soll das Programm 10 Dateien einlesen und ausgeben. Wie würde ich das machen? 
Das ist mein Problem. Die Anwendung für eine Datei ist ja kein Problem. Linuxmäßig ala "/home/test/python/logs/*.log-*" funktioniert es ja natürlich nicht 

 
			
					
				
				Verfasst: Montag 23. Juni 2008, 17:11
				von EyDu
				Kern hat geschrieben:Meine Frage ist, wie ich diese dann weiter anwende.
Einfach mit einer for-Schleife alle Elemente der Liste abarbeiten. Bei so einer Frage fällt mir natürlich ein: Hast du das 
Tutorial durchgearbeitet?
 
			
					
				
				Verfasst: Montag 23. Juni 2008, 17:57
				von gerold
				Kern hat geschrieben:Ein simples Beispiel
Hallo Kern!
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import os
import time
LOGDIR = "/home/test/python/logs" # und alle Unterordner
today = time.localtime()[:3] # (JAHR, MONAT , TAG)
new_logfiles = []
for (dirpath, dirnames, filenames) in os.walk(LOGDIR):
    for filename in filenames:
        if filename.endswith(".log"):
            filename = os.path.join(dirpath, filename)
            mday = time.localtime(os.path.getmtime(filename))[:3]
            if mday == today: # nur heute modifizierte Dateien
                new_logfiles.append(filename)
print new_logfiles
mfg
Gerold

 
			
					
				
				Verfasst: Montag 23. Juni 2008, 18:12
				von Kern
				Habe das Tutorial nicht gelesen  
 
 
Eher nen Mix aus Forum, Buch und 
http://docs.python.org/ref/ref.html 
Sorry wenn ich einigen mit solchen Fragen auf die Nerven gehe. 
@ gerold: Nochmals vielen Dank. os.walk + die Schleife wars 

 
			
					
				
				Verfasst: Montag 23. Juni 2008, 20:16
				von lunar
				Wenn ich hier nochmal das path.py [1] Modul in den Raum werfen darf, das ist für umfangreiche Arbeiten am Dateisystem nämlich um einiges komfortabler als die Standard-os.path-API.
[1] 
http://www.jorendorff.com/articles/python/path/