[Tutor] FTP question (slightly OT)
Paul Schewietzek
tetsuo2k6 at web.de
Tue Aug 19 15:16:44 CEST 2008
Hello everyone,
I put together the following, most of it is from different howtos on the
web.
<code>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def gettext(ftp, filename, outfile=None):
if outfile is None:
outfile = sys.stdout
ftp.retrlines("RETR %s" % filename, lambda s, w=outfile.write:
w(s+"\n"))
def main():
from ftplib import FTP
import datetime
ftp = FTP("ftp.ftpserver.com")
ftp.login("my_username", "my_passwd")
ftp.set_pasv(1)
filename = "name_of_textfile"
outfile = open(filename, "w")
ftp.cwd("OUT")
gettext(ftp, filename, outfile)
ftp.quit()
if __name__ == "__main__":
main()
</code>
The script actually runs fine when "ftp.ftpserver.com" == "my_server_a",
however when "ftp.ftpserver.com" == "my_server_b", it produces:
<snip>
Traceback (most recent call last):
File "/usr/local/bin/get_afendis_STATS_from_ftp.py", line 24, in ?
main()
File "/usr/local/bin/get_afendis_STATS_from_ftp.py", line 20, in main
gettext(ftp, filename, outfile)
File "/usr/local/bin/get_afendis_STATS_from_ftp.py", line 7, in
gettext
ftp.retrlines("RETR %s" % filename, lambda s, w=outfile.write: w(s
+"\n"))
File "/usr/lib/python2.4/ftplib.py", line 396, in retrlines
conn = self.transfercmd(cmd)
File "/usr/lib/python2.4/ftplib.py", line 345, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python2.4/ftplib.py", line 324, in ntransfercmd
conn.connect(sa)
File "<string>", line 1, in connect
socket.error: (110, 'Connection timed out')
</snip>
So it looks like "my_server_b" has some different requirements or
something? I don't have much experience with the ftp-protocol, so I
thought maybe you guys could point me in the right direction?
The files are definitely existent on the servers, and when I connect to
them via the shell, I can up- and download files as I want.
Seems like the call to ftp.retrlines() somehow doesn't work...
I'm also not sure about ftp.set_pasv(1).
Regards, Paul
More information about the Tutor
mailing list