[Python-Dev] Proposed addition to ftplib
Jordan Haven
jordanhaven at hotmail.com
Tue Feb 3 16:44:18 EST 2004
Hey Python developers!
First, since this is my first message to this group, let me introduce
myself. My name is Jordan Haven, I'm 16, I live just outside of DC and have
been programming for only a few years (~ 2 years). Python was the first
language I started, and I have loved it since the beginning.
Now, onto the real purpose of this email. Recently, while creating a CLI FTP
program as a precursor to my GUI version (SF project: ftpy), I ran into a
roadblock: I couldn't change permissions on the remote file. So I searched
the comp.lang.python newsgroup, the python-list archives, these development
archives, and countless ftplib tutorials and books and couldn't find
anything on chmod'ing files through FTP with the standard ftplib module. So
I went through ftplib.py (Python 2.3), and there was no function for
chmod'ing files.
I think (and hope you all will agree with me :)) that there needs to be a
chmod funtcion included in the ftplib module. So I took the liberty to write
one up (see attached). It works fine on my box (Windows 2000 with Python
2.3), and there aren't any obvious backwards compatibility problems that I
can see, so the only thing left is to test crossplatform portability.
However, looking at the code there doesn't seem to be any issues with that,
but if some of you could check it out on various other platforms, I would be
most appreciative.
Hopefully it (or a modified version) will make it into the next release of
Python.
Well, thank you for your time, and for taking a look at the included
function. I look forward to hearing back from you.
-- Jordan Haven
_________________________________________________________________
Find high-speed ‘net deals — comparison-shop your local providers here.
https://broadband.msn.com
-------------- next part --------------
#ftplib.py function chmod
#
#Author: Jordan Haven
#
#This function should be added to the FTP class in the ftplib.py module
#
#Usage: From within an FTP program, after a connection has been made. Like
so:
#
# ftp_host = raw_input("Host Name: ")
# ftp_port = input("Port Number: ")
# ftp_user = raw_input("User Name: ")
# ftp_pass = getpass.getpass("Password: ")
# ftp_acct = raw_input("Account (Leave blank if none): ")
# if ftp_user and ftp_pass == "":
# ftp = FTP(ftp_host)
# ftp.login()
# print "Thank you! FTPy is now attempting to connect to %s on port %s"%
(ftp_host, ftp_port)
# ftp = FTP(ftp_host)
# ftp.connect(ftp_host, ftp_port)
# ftp.login(ftp_user, ftp_pass, ftp_acct)
# welcome = ftp.getwelcome()
# print welcome
# def ftpmain():
# cmd = raw_input("%s@%s: " %(user, ftp_host))
# ... code for functions like pwd and cwd, etc. ...
#
# elif cmd == 'chmod':
# file = raw_input("File to change permissions: ")
# mode = raw_input("CHMOD value: ")
# ftp.chmod(mode, file)
# ftpmain()
#
# ... other code ...
#
#The above is an example from the FTP program I'm making and is obviously
only an example
#of the implementation.
#
#Something to note: 'mode' is a string, not an int so it can be passed as a
single command
#by the function.
#
#And now, the actual function:
def chmod(self, mode, file):
'''Change file permissions for a file on the remote server.'''
return self.voidcmd('SITE CHMOD ' + mode + ' ' + file)
More information about the Python-Dev
mailing list