On 02/05/2013 12:29 PM, chris.an...@gmail.com wrote:
im trying to delete all text files from an ftp directory. is there a way to
delete multiple files of the same extension?
I came up with the following code below which works but I have to append the
string because ftp.nlst returns:
"-rwx------ 1 user group 0 Feb 04 15:57 New Text Document.txt"
but then when I try to delete it that long file name which includes the date doesnt exist - the
files name is "new text document.txt" not "-rwx------ 1 user group 0 Feb 04 15:57
New Text Document.txt"
so anyway I stripped off the the beginning keeping the last 21 characters and
it worked great - this should work being that I know all my text files names
are the same length in characters - but it seems like there should be a better
more bullet proof way to do this?
[code]import os
import system
from ftplib import FTP
ftp = FTP('127.0.0.1')
ftp.login('')
directory = 'test'
ftp.cwd(directory)
files = ftp.nlst()
for file in files:
if file.find(".txt") != -1:
file = (file [-21:])
ftp.delete(file)
ftp.close()[/code]
any ideas on this? thank you.
You forgot to say what python version, and what OS you're running on.
I havne't played much with the ftp library, but it seems it'd be much
more robust to use something like file[39:] but that's still a "magic
number".
So i look in the ftplib docs:
http://docs.python.org/2/library/ftplib.html
and it seems there are other choices besides nlst(). If all you need is
the filename, why not check out
FTP.retrlines(command[, callback])ΒΆ
FTP.dir(argument[, ...])
--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list