Dateien via FTP hochladen!

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Iopodx

Samstag 4. September 2004, 20:09

Hi!

Bin eigentlich sehr neu mit python... Also ich bin gerade am Programm schreiben... jetzt muss ich aber eine Datei auf einen FTP hochladen können... Sollte ja nicht soo schwer sein, oder ? Irgendwie so muss es doch gehen, oder ?:

ftp.storbinary(self, cmd, fp, blocksize=8192)

nur weiß ich nicht wo ich hier die Datei eingeben soll... naja schonmal danke im vorraus...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Samstag 4. September 2004, 20:22

Iopodx hat geschrieben:jetzt muss ich aber eine Datei auf einen FTP hochladen können...
Hallo Iopodx!

Das sollte so ähnlich funktionieren:

Code: Alles auswählen

ftp.storbinary('STOR testdatei-neu', open('testdatei','rb',1024))
Und hier noch ein Link:
http://python.sandtner.org/viewtopic.php?t=1867

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Iopodx

Samstag 4. September 2004, 20:53

Danke für die schnelle Antwort :)
Iopodx

Samstag 4. September 2004, 20:56

Noch einwas bräuchte ich, einen Script der die Dateigröße ausließt... irgendwie mit

Code: Alles auswählen

datei.tell()
aber wie versuche ich schon die ganze Zeit...
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Samstag 4. September 2004, 22:09

Hi!

Schau dir mal os.stat() an.

Gruß, mawe
Iopodx

Sonntag 5. September 2004, 07:38

Schau dir mal os.stat() an.
Sorry, aber das bringt mich nicht weiter?!
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Sonntag 5. September 2004, 08:06

Hi!

Code: Alles auswählen

os.stat(dateiname)[6]
oder

Code: Alles auswählen

os.path.getsize(dateiname)
gibt die Dateigröße aus. Du willst doch die Dateigröße, oder?

Gruß, mawe
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 5. September 2004, 08:13

Iopodx hat geschrieben:Sorry, aber das bringt mich nicht weiter?!
Hi Iopodx!

1. Hilfe zu os.stat() ansehen
2. Ergebnis von os.stat() analysieren
Das geht so:

Code: Alles auswählen

import os
s = os.stat(r'C:\xyz-datei')
dir(s)
3. Herausfinden, dass es ein Attribut mit dem Namen st_size gibt
4. Code zum Herausfinden der Größe schreiben

Code: Alles auswählen

import os
print "Bytes: %s" % os.stat(r'C:\xyz-datei').st_size
Wenn man ein Objekt noch nicht kennt, dann kann man relativ viele Informationen mit dir() herausfinden.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Iopodx
User
Beiträge: 68
Registriert: Sonntag 5. September 2004, 08:58

Sonntag 5. September 2004, 09:00

Ah, Vielen Dank werde es probieren.. Werde mein erstes Programm dann mal posten... danke :)
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Sonntag 5. September 2004, 11:30

oder in einer Console/Dosfenster pydoc os.stat eingeben. Oder mit pydoc -g das graphische Interface starten.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Sonntag 5. September 2004, 15:11

pydoc -g finde ich bei mir nicht (Fedora Core2, python-2.3.3-6). Aber pydoc -h 34567 macht sich auch ganz gut. Dann kann man im Browser über http://localhost:34567 zugreifen.

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

Sonntag 5. September 2004, 17:05

Hi Hans. Das entspricht quasi pydoc -g, nur dass der Server nicht auf Port 7464 geöffnet wird und man kein grafisches Tool hat, womit man auch wie in der Shell suchen kann :wink:

verschoben nach Netzwerke...
Antworten