Seite 1 von 2
					
				Datei auslesen
				Verfasst: Montag 28. Juni 2010, 11:40
				von huffman
				Liebes Python-Board,
ich schreibe gerade an einem Script das über FTP meine Backups downloaden soll. Auf meinem Server gibt es ein Shell-Script welches mir Backups in .tar.gz Archive erstellt, und das Script schreibt in eine Datei, die Datei heißt "log" und sieht z.B. so aus:
201006281645
201006282050
Nach jedem Backup wird wieder neu in die Datei geschrieben. 
Ich möchte nun das mein Script (wird bei jedem Systemstart ausgeführt) sich zu meinem FTP-Server verbindet, und anhand der "log" Datei prüft ob es neue Dateien gibt, alle Backups liegen als .tar.gz dann auf dem lokalem Rechner, wenn im log File also ein neuer Eintrag vorhanden ist soll zuerst geprüft werden ob die Datei(en) schon im lokalen Backup Verzeichnis sind. Falls nicht soll er die Downloaden. 
Bisher sieht mein Script so aus:
Code: Alles auswählen
import ftplib
import os
ftp = ftplib.FTP("server.de", "user", "password")
ftp.sendcmd('CWD /backup')
backups = ftp.retrlines("RETR log")
print(backups)
x = os.listdir(os.getcwd())
ftp.retrbinary('RETR 201006281645.tar.gz', open('201006281645.tar.gz', 'wb').write)
ftp.quit()
Leider weiß ich nicht wie ich den Inhalt der log Datei (Variable backup) auslesen kann, ich würde das ganze ja in einem while- Schleife durchlaufen lassen, und prüfen, aber ich bin es gewohnt über backups[1] auf einen Eintrag zuzugreifen, ich verstehe hier nicht ganz was ich dazu tun muss.
Vielleicht hat einer von euch ja eine Idee, 
danke gleich mal!
Huffi
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Montag 28. Juni 2010, 11:56
				von .robert
				
			 
			
					
				Re: Datei auslesen
				Verfasst: Dienstag 29. Juni 2010, 15:33
				von Py-Prog
				huffman hat geschrieben:Ich möchte nun das mein Script (wird bei jedem Systemstart ausgeführt)
Wie hast du das gemacht? Kannst du mir bitte (genau) sagen wie man das einrichtet? Ich will sowas änliches machen, da wär das mehr als sinvoll.
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Dienstag 29. Juni 2010, 15:36
				von Dav1d
				Py-Prog hat geschrieben:huffman hat geschrieben:Ich möchte nun das mein Script (wird bei jedem Systemstart ausgeführt)
Wie hast du das gemacht? Kannst du mir bitte (genau) sagen wie man das einrichtet? Ich will sowas änliches machen, da wär das mehr als sinvoll.
 
Da gibts viele Möglichkeiten (ich gehe mal von Windows aus):
* ein Task
* Eintrag in der Registry (da gibts sehr viele Möglichkeiten => google)
* Autostart C:\Dokumente und Einstellungen\(Der User|All Users)\Startmenü\Autostart
//Edit: 666  

  Beiträge
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Dienstag 29. Juni 2010, 19:26
				von Py-Prog
				Du hast nach start menü Programme vergessen.
			 
			
					
				Re: Datei auslesen
				Verfasst: Dienstag 29. Juni 2010, 20:54
				von /me
				Py-Prog hat geschrieben:Du hast nach start menü Programme vergessen.
Der Satz ist sinnlos und hat auch nach kleiner gedanklicher Korrektur keine zutreffende Aussage.
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Dienstag 29. Juni 2010, 23:24
				von Leonidas
				Py-Prog meinte dass da noch eine Ordnerebene im Pfad zum "Autostart"-Ordner fehlt. Aber ich seh da andere Probleme: "C" ist nicht immer der Ort wo die Home-Verzeichnissse sind und diese heißen auch nicht immer "Dokumente und Einstellungen" sondern in neueren Windows-Versionen sprachneutral "Users". Python bringt aber die entsprechende Funktionalität mit, den Home-Ordner zu finden.
			 
			
					
				Re: Datei auslesen
				Verfasst: Donnerstag 1. Juli 2010, 14:30
				von Py-Prog
				Leonidas hat geschrieben:Python bringt aber die entsprechende Funktionalität mit, den Home-Ordner zu finden.
Wie geht das denn?
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Donnerstag 1. Juli 2010, 14:53
				von Leonidas
				``os.path.expanduser('~')`` etwa.
			 
			
					
				Re: Datei auslesen
				Verfasst: Donnerstag 1. Juli 2010, 18:41
				von Py-Prog
				Danke, das funktioniert aber leider wird nicht der genaue Pfad angegeben ...  

 
			 
			
					
				Re: Datei auslesen
				Verfasst: Donnerstag 1. Juli 2010, 20:17
				von cofi
				Es gibt `os.path.abspath`, das haette dir aber auch die Dokumentation sagen koennen ...
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 14:39
				von Py-Prog
				Wieso immer Dokumentation? Wieso nicht nen Link zu ner Referenz? Das würde mir meist mehr helfen! 

 
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 14:46
				von Rebecca
				Auf 
docs.python.org findest du die Library-Reference und die Language Reference, oder was meinst du? Die Suchfunktion auf der Seite funktioniert auch hervorragend! 

 
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 14:52
				von Py-Prog
				Ja, sowas hab ich gemeint, Danke. 

 
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 15:10
				von Py-Prog
				@huffman du kannst die import anweisungen auch so schreiben:
Bei vielen Modulen ist das Platzsparender und weniger zu schreiben. 

 
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 15:11
				von Rebecca
				Py-Prog, die Variante ist aber unuebersichtlicher und enspricht auch nicht PEP8.
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 16:11
				von Py-Prog
				Was ist PEP8?
			 
			
					
				Re: Datei auslesen
				Verfasst: Freitag 2. Juli 2010, 17:13
				von EyDu
				Py-Prog hat geschrieben:Was ist PEP8?
das 
			 
			
					
				Re: Datei auslesen
				Verfasst: Samstag 3. Juli 2010, 13:55
				von Py-Prog
				Ah, da ist festgelegt wie man die Programme schreiben sollte oder so ähnlich.
Aber wer schreibt schon :
Code: Alles auswählen
import time
import os
import os.path
import tkinter
import tkinter.filedialog
import tkinter.messagebox
import pygame
import visual
import math
import xturtle
...
und wenn das mit dem kommas nicht dem Syntax entsprechen würde, hätte es bei mir nie funktioniert.
 
			 
			
					
				Re: Datei auslesen
				Verfasst: Samstag 3. Juli 2010, 17:00
				von BlackJack
				@Py-Prog: Das schreiben Leute so die schon mal grössere Programme geschrieben haben und den Überblick nicht verlieren wollen.  Allerdings noch alphabetisch sortierten Gruppen für Importe aus der Standardbibliothek, fremden Bibliotheken, und den eigenen Modulen, die zum Programm gehören.
Wenn man möglichst viel in eine Zeile schreibt, das dann vielleicht noch nicht einmal alphabetisch sortiert, verliert man schnell mal den Überblick was man da alles schon stehen hat.  Dann kommen öfter mal unnötige Mehrfachimporte vor, oder man hat Importe da drin, die man gar nicht mehr verwendet.
Noch kritischer wird es wenn man eine Versionsverwaltung verwendet und/oder mit mehreren Leuten an einem Projekt arbeitet.  Wenn da jeder die Importe hinschreibt wie er will, gibt es schnell Mehrfachimporte und bei mehreren Importen pro Zeile gibt es schnell unnötige Konflikte, die von der Versionskontrolle nicht mehr automatisch aufgelöst werden können.
Ausserdem sollte man sich ab einer gewissen Anzahl von ``import``-Anweisungen auch fragen ob die Aufteilung in Module vielleicht besser gemacht werden könnte, weil das Modul dann wahrscheinlich für viel zu viel verantwortlich ist.