En Sun, 31 Jan 2010 19:07:44 -0300, Mik0b0 <new...@gmail.com> escribió:
Good day/night/etc.
I am rather a newb in Python (learning Python 3). I am trying to
create a small script for FTP file uploads on my home network. The
script looks like this:
from ftplib import FTP
ftp=FTP('10.0.0.1')
ftp.login('mike','*****')
directory='/var/www/blabla/'
ftp.cwd(directory)
ftp.retrlines('LIST')
print('<- - - - - - - - - >')
file_to_change='test'
file=1
file=open(file_to_change,'w')
text='test'
file.write(text)
ftp.storlines('STOR ' + file_to_change,file)
ftp.retrlines('LIST')
file.close()
The output is like this:
Traceback (most recent call last):
File "ftp.py", line 13, in <module>
ftp.storlines('STOR ' + file_to_change,i)
File "/usr/lib/python3.1/ftplib.py", line 474, in storlines
buf = fp.readline()
IOError: not readable
For the ftp client to be able to read and upload the file, it must have
been opened for reading. But you opened it with mode 'w' a few lines above.
A quick and dirty way would be to close the file right after
file.write(...) and re-open it with mode 'r':
...
file.write(text)
file.close()
file = open(file_to_change,'r')
ftp.storlines(...)
But I'd separate file-creation from file-uploading. When it's time to
upload the file, assume it already exists and has the desired contents
(because it has already been created earlier by the same script, or
perhaps by some other process), so you just have to open it with mode 'r'.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list