[ python-Bugs-1168983 ] ftplib.py string index out of range
SourceForge.net
noreply at sourceforge.net
Wed Aug 24 16:08:23 CEST 2005
Bugs item #1168983, was opened at 2005-03-23 10:05
Message generated for change (Settings changed) made by vmlinuxz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1168983&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.4
>Status: Closed
Resolution: Accepted
Priority: 5
Submitted By: David Carroll (vmlinuxz)
Assigned to: Nobody/Anonymous (nobody)
Summary: ftplib.py string index out of range
Initial Comment:
The following code works great on all of the 2.3.x
releases I have used.
def
ftpFetch(localPath,remoteFileDate,ftpSite,ftpPass,ftpDir,ftpUser):
print "Fetching split_mgr report"
fileList=[]
processList=[]
ftp = FTP(ftpSite)
ftp.login(ftpUser,ftpPass)
ftp.dir('LIST '+ftpDir,fileList.append)
for x in range(len(fileList)):
if (string.find(fileList[x],remoteFileDate) != -1):
print fileList[x]
TMP=fileList[x]
output=localPath+str(TMP[45:])
print output
processList.append(output)
print processList
outfile = open(output,'w')
ftp.retrbinary('RETR '+ftpDir+TMP[45:],
open(output, 'wb').write)
ftp.quit()
print processList
return processList
However I get the following error under 2.4
Traceback (most recent call last):
File
"C:\Python24\lib\site-packages\PythonCard\widget.py",
line 417, in _dispatch
handler(background, aWxEvent)
File "C:\Documents and
Settings\PROTECTED\Desktop\ReadWaitReport\ReadWaitReport\readwaitreport.py",
line 61, in on_btnRun_command
mainRwclassLoop(self, mm+dd+yy, yesterday)
File "C:\Documents and
Settings\PROTECTED\Desktop\ReadWaitReport\ReadWaitReport\rwclass.py",
line 39, in mainRwclassLoop
processList =
ftpFetch(localPath,"split_mgr."+date[0:4],ftpSite,ftpPass,ftpDir,ftpUser)
File "C:\Documents and
Settings\PROTECTED\Desktop\ReadWaitReport\ReadWaitReport\rwclass.py",
line 173, in ftpFetch
ftp.dir('LIST '+ftpDir,fileList.append)
File "C:\Python24\lib\ftplib.py", line 464, in dir
self.retrlines(cmd, func)
File "C:\Python24\lib\ftplib.py", line 396, in retrlines
conn = self.transfercmd(cmd)
File "C:\Python24\lib\ftplib.py", line 345, in
transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "C:\Python24\lib\ftplib.py", line 328, in
ntransfercmd
if resp[0] != '1':
IndexError: string index out of range
https://lists.dulug.duke.edu/pipermail/yum/2004-August/005067.html
discusses a similar problem under Linux in the YUM
script, I have reproduced this error under 2000, and XP.
I'm a fairly new programmer, and thus very new to
python so I hope this is enough information. I will
try and keep track of this and help out with more
information in any capacity I can.
Thank you for all your hard work and dedication.
David Carroll
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2005-08-24 05:00
Message:
Logged In: YES
user_id=80475
If you're issue has been addressed, go ahead and close it.
----------------------------------------------------------------------
Comment By: David Carroll (vmlinuxz)
Date: 2005-04-11 09:13
Message:
Logged In: YES
user_id=684143
I'm not sure if this needs any more clarification, but for
accuracy I'm attaching a file with the working and non
working code segments, and the level 2 debug. This code was
run on 2.3, using your new ftplib modifications, and the
distributed ftplib. The FTP server is wu-2.6.2(1) running
on a SCO system (bleh). The code was tested in PASV and
PORT mode. I'm new to this so I don't know if I should
close this or the patch submitter. If you need anything
else from me let me know.
David
----------------------------------------------------------------------
Comment By: David Carroll (vmlinuxz)
Date: 2005-04-08 10:13
Message:
Logged In: YES
user_id=684143
I achieve the same results with the following code.
ftp = FTP('ftp.cdrom.com')
ftp.login('anonymous', 'anonymous@')
ftp.retrlines('LIST')
This code works just fine with your patched ftplib.py, or
the old ftplib.py against all public internet ftp servers I
have tried it on. It works on the server at work only
sporadically,, and raising the protocol exception the rest
of the time. I'm inclined to think that there may be a
problem with the protocol implementation on the server side.
The server software version is wu-2.6.2(1), and the only
oddity I see with it is a pretty sizeable delay before
giving the login. Up to 10 seconds.
I'd love to get a pointer of where to take this debugging
process next. Perhaps I need to use a sniffer on the
connection or something. I would love to see what ftplib.py
is getting back that is breaking it.
----------------------------------------------------------------------
Comment By: David Carroll (vmlinuxz)
Date: 2005-04-07 09:51
Message:
Logged In: YES
user_id=684143
Thank you for leaving this open. I will try and get your
example today. I'm too uneducated to realize what I'm doing
wrong, so maybe you can use my ignorance for the common good
=).
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2005-04-05 04:31
Message:
Logged In: YES
user_id=80475
I fixed the IndexError. It should have been a protocol
error. See Lib/ftplib.py 1.74.
Leaving the bug open so the OP can make a more detailed post
so we can see what the root issue is about.
----------------------------------------------------------------------
Comment By: Ilya Sandler (isandler)
Date: 2005-04-05 03:37
Message:
Logged In: YES
user_id=971153
It turns out that the code in plain text bug report is more
or less readable, so I can see what you were trying to do...
Seems like you are doing
ftp.dir("LIST "+ftpDir)
But ftplib docs:
http://www.python.org/doc/current/lib/ftp-objects.html
say that you need to specify the directory
ftp.dir(ftpDir)
so it seems that you are using ftp.dir() incorrectly....
But, even then IndexError seems like a wrong kind of
exception for this kind of error...
So, I guess, my original request for a working code snippet
which would allow to reproduce the bug still stands..
----------------------------------------------------------------------
Comment By: Ilya Sandler (isandler)
Date: 2005-04-05 02:12
Message:
Logged In: YES
user_id=971153
Could you submit a minimalistic piece of code which
illustrates the problem?
As well as any input data which are required to reproduce it?
(SourceForge garbled your original example)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1168983&group_id=5470
More information about the Python-bugs-list
mailing list