Datei Bearbeitungsfehler

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.
Antworten
Benutzeravatar
Mathmos
User
Beiträge: 36
Registriert: Dienstag 10. August 2010, 21:31

Hallo,

ich versuche gerade eine heruntergeladene Datei zu editieren und neu hochzuladen.
Allerdings bekomme ich hier immer eine Fehlermeldung.
Bild

Code: Alles auswählen

	datei=open("HP-Videos.htm", "w+b")
	ftp.retrbinary('RETR HP-Videos.htm', datei.write)
	datei.close()


	datei2=open("HP-Videos.htm", "r+b")
	bearbeitet = datei2.read().replace("<!-- PLATZHALTER -->", video_htm_bearbeitet)
	ftp.storbinary('STOR HP-Videos2.htm', bearbeitet)
Zudem kommt noch, wenn ich die Datei heruntergeladen habe, sind keine Zeilenumbrüche mehr vorhanden.
Kennt da vllt jemand auch ne Lösung für?
Zuletzt geändert von Mathmos am Samstag 25. Juni 2011, 20:12, insgesamt 1-mal geändert.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Die Fehlermeldung gibt dir doch Auskunft über das Problem.
storbinary() erwartet als 2. Parameter ein Datei-Objekt, keine Zeichenkette.
Benutzeravatar
Mathmos
User
Beiträge: 36
Registriert: Dienstag 10. August 2010, 21:31

Ah, danke =)

Allerdings habe ich nun noch ein Problem beim uploaden.
Und zwar wird html datei nicht korrekt hochgeladen.
Die Datei ist dann zwar auf dem FTP Server vorhanden, allerdings ohne Inhalt.

Mein Code sieht momentan wie folgt aus.

Code: Alles auswählen

	datei=open("HP-Videos.htm", "w+b")
	ftp.retrbinary('RETR HP-Videos.htm', datei.write)
	datei.close()

	datei2=open("HP-Videos.htm", "r+b")
	bearbeitet = datei2.read().replace("<!-- PLATZHALTER -->", video_htm_bearbeitet)

	html_temp_datei=open("temp.htm", "w+b")
	html_temp_datei.write(bearbeitet)

	ftp.storbinary('STOR HP-Videos2.htm', html_temp_datei)
	html_temp_datei.close()
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Mal so geraten:

Code: Alles auswählen

with open("HP-Videos.htm", "w+b") as datei:
    ftp.retrbinary('RETR HP-Videos.htm', datei.write)

with open("HP-Videos.htm", "r+b") as datei:
     bearbeitet = datei.read().replace("<!-- PLATZHALTER -->", video_htm_bearbeitet)

with open("temp.htm", "w+b") datei:
    datei.write(bearbeitet)

with open("temp.htm", "r+b") datei:
    ftp.storbinary('STOR HP-Videos2.htm', datei)
Ich weiss nicht, ob die `with`s hier überall funktionieren, musst sie sonst ggf. rausnehmen. Außerdem würde ich vermuten, dass in der letzten Zeile `datei.read` benötigt wird, aber auch das kannst du selber ausprobieren.

Sebastian
Das Leben ist wie ein Tennisball.
Benutzeravatar
Mathmos
User
Beiträge: 36
Registriert: Dienstag 10. August 2010, 21:31

Danke, funktioniert nun wunderbar =)
Antworten