Hello, I have posted before about trying to find the status of an FTP
uplaod but couldn't get anything to work. After some more searching I
found http://groups.google.com/group/comp....917c906cdc04d4
but it does not seem to work because it just uploads the file and does
not print a . onto the screen. HEre is the code I have when I'm using
the code from that link.
import ftplib
import os
class dot_FTP(ftplib.FTP):
def storbinary(self, cmd, fp, blocksize=8192):
self.voidcmd('TYPE I')
conn = self.transfercmd(cmd)
while 1:
buf = fp.read(blocksize)
if not buf: break
conn.send(buf)
sys.stdout.write('.')
sys.stdout.flush()
conn.close()
return self.voidresp()
ftp = ftplib.FTP("FTPADDRESS")
ftp.login("user","pass")
file = "/file"
ftp.storbinary("STOR " + file, open(file, "rb"), 1024)
ftp.quit()
Does anyone know why this is not working? IS there any other way to
find out when a chunc has been sent or the bytes uploaded of a file?
Thanks. 10 1483
On Fri, 2005-09-16 at 19:27 -0700, Nainto wrote: Hello, I have posted before about trying to find the status of an FTP uplaod but couldn't get anything to work. After some more searching I found http://groups.google.com/group/comp....917c906cdc04d4 but it does not seem to work because it just uploads the file and does not print a . onto the screen. HEre is the code I have when I'm using the code from that link. import ftplib import os class dot_FTP(ftplib.FTP): def storbinary(self, cmd, fp, blocksize=8192): self.voidcmd('TYPE I') conn = self.transfercmd(cmd) while 1: buf = fp.read(blocksize) if not buf: break conn.send(buf) sys.stdout.write('.') sys.stdout.flush() conn.close() return self.voidresp()
ftp = ftplib.FTP("FTPADDRESS") ftp.login("user","pass") file = "/file" ftp.storbinary("STOR " + file, open(file, "rb"), 1024) ftp.quit() Does anyone know why this is not working? IS there any other way to find out when a chunc has been sent or the bytes uploaded of a file? Thanks.
.... and I haven't tried this myself, but you should be able to subclass
the builtin file object and prepare your own read() method. Something
like
class ProgressFile(file):
def read(self, size = None):
print '.',
if size is not None:
return file.read(self, size)
else:
return file.read()
May need some tweaking.. then store the file as
ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
Give it a try..
-m
On Sat, 2005-09-17 at 04:42 +0000, marduk wrote: ... and I haven't tried this myself, but you should be able to subclass the builtin file object and prepare your own read() method. Something like
class ProgressFile(file):
def read(self, size = None): print '.',
if size is not None: return file.read(self, size) else: return file.read()
May need some tweaking.. then store the file as
ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
Give it a try..
-m
I corrected some errors and made some modifications to my previous post:
class ProgressFile(file):
def read(self, size = None):
from sys import stdout
if size is not None:
buff = file.read(self, size)
if buff:
stdout.write('.')
else:
stdout.write('\n')
return buff
else:
buff = ''
while True:
new_str = file.read(self, 1024)
stdout.write('.')
if new_str:
buff = buff + new_str
else:
stdout.write('\n')
break
return buff
if __name__ == '__main__':
import sys
fname = sys.argv[1]
f = ProgressFile(fname)
f.read()
Thanks, I'll give this a try. This will print a period right?
When I execute the folllowing code with all of the address, username,
and passwords filled out I gt an error saying:
"/Library/Frameworks/Python.framework/Versions/2.4/Resources/Python.app/Contents/MacOS/Python"
"/Users/zacim/Documents/FireUpFTP/foramttedthing" ; exit
Traceback (most recent call last):
File "/Users/zacim/Documents/FireUpFTP/foramttedthing", line 26, in ?
fname = sys.argv[1]
IndexError: list index out of range
logout
[Process completed]
This is the code:
import ftplib
class ProgressFile(file):
def read(self, size = None):
from sys import stdout
if size is not None:
buff = file.read(self, size)
if buff:
stdout.write('.')
else:
stdout.write('\n')
return buff
else:
buff = ''
while True:
new_str = file.read(self, 1024)
stdout.write('.')
if new_str:
buff = buff + new_str
else:
stdout.write('\n')
break
return buff
if __name__ == '__main__':
import sys
fname = sys.argv[1]
f = ProgressFile(fname)
f.read()
ftp = ftplib.FTP("ftp.sadpanda.cjb.cc")
ftp.login("sadpanda","s4dp4nd4b1g")
file = "/FrenchBrochure.pages.zip.gz"
ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
ftp.quit()
That is because you have just taken marduk's program and included your
ftp code... please see what he has done in the if __name__ == '__main__'
part.
He expects the file name as an commandline argument (sys.argv[1]) and
since you just copied his code, you are invoking the script *without*
the argument. This is what the exception means when it says "list index
out of range".
To make ProgressFile class work for you with the filename you have
hardcoded... make the following modification to the "if __name ==" part:
if __name__ == '__main__':
ftp = ftplib.FTP("ftp.sadpanda.cjb.cc")
ftp.login("sadpanda","s4dp4nd4b1g")
file = "/FrenchBrochure.pages.zip.gz"
ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
ftp.quit()
Thanks,
-Kartic
The Great 'Nainto' uttered these words on 9/17/2005 9:08 AM: When I execute the folllowing code with all of the address, username, and passwords filled out I gt an error saying: "/Library/Frameworks/Python.framework/Versions/2.4/Resources/Python.app/Contents/MacOS/Python" "/Users/zacim/Documents/FireUpFTP/foramttedthing" ; exit Traceback (most recent call last): File "/Users/zacim/Documents/FireUpFTP/foramttedthing", line 26, in ? fname = sys.argv[1] IndexError: list index out of range logout [Process completed]
This is the code:
import ftplib class ProgressFile(file): def read(self, size = None): from sys import stdout
if size is not None: buff = file.read(self, size) if buff: stdout.write('.') else: stdout.write('\n') return buff else: buff = '' while True: new_str = file.read(self, 1024) stdout.write('.') if new_str: buff = buff + new_str else: stdout.write('\n') break return buff if __name__ == '__main__': import sys fname = sys.argv[1] f = ProgressFile(fname) f.read()
ftp = ftplib.FTP("ftp.sadpanda.cjb.cc") ftp.login("sadpanda","s4dp4nd4b1g") file = "/FrenchBrochure.pages.zip.gz" ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024) ftp.quit()
I'm really sorry that I keep having problems with this. :-( Now I get:
TypeError: Error when calling the metaclass bases[] str() takes at most
1 arguement (3 given)
and the Traceback is:
file "formattedthing", line 2, in '?'
classProgressFile(file)
With the following code:
import ftplib
class ProgressFile(file):
def read(self, size = None):
from sys import stdout
if size is not None:
buff = file.read(self, size)
if buff:
stdout.write('.')
else:
stdout.write('\n')
return buff
else:
buff = ''
while True:
new_str = file.read(self, 1024)
stdout.write('.')
if new_str:
buff = buff + new_str
else:
stdout.write('\n')
break
return buff
if __name__ == '__main__':
ftp = ftplib.FTP("ftp.sadpanda.cjb.cc")
ftp.login("sadpanda","PASSWORDEDITEDOUT")
file = "/FrenchBrochure.pages.zip"
ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
ftp.quit()
Thanks so muchy for help guys. :-)
Hello, file = "/FrenchBrochure.pages.zip" ftp.storbinary("STOR " + file, ProgressFile(file, "rb"), 1024)
You are using file = "/FrenchBrochure.pages.zip" (sorry I did not notice
earlier).
You can not use file as variable name like you have, as it represents a
file object in python.
Please change your variable name from file to filename.
Thanks.
Unfortunatly I stiill get the same error. :-(
Here is the code:
import ftplib
class ProgressFile(file):
def read(self, size = None):
from sys import stdout
if size is not None:
buff = file.read(self, size)
if buff:
stdout.write('.')
else:
stdout.write('\n')
return buff
else:
buff = ''
while True:
new_str = file.read(self, 1024)
stdout.write('.')
if new_str:
buff = buff + new_str
else:
stdout.write('\n')
break
return buff
if __name__ == '__main__':
ftp = ftplib.FTP("ftp.sadpanda.cjb.cc")
ftp.login("sadpanda","PASSWORDEDITIEDOUT")
filename = "/FrenchBrochure.pages.zip"
ftp.storbinary("STOR " + filename, ProgressFile(filename, "rb"), 1024)
ftp.quit()
Thanks again.
> Unfortunatly I stiill get the same error. :-(
The same "metaclass bases[]" error?? Here is the code: import ftplib
-snip- if __name__ == '__main__': ftp = ftplib.FTP("ftp.sadpanda.cjb.cc") ftp.login("sadpanda","PASSWORDEDITIEDOUT") filename = "/FrenchBrochure.pages.zip" ftp.storbinary("STOR " + filename, ProgressFile(filename, "rb"), 1024)
ftp.quit()
Your code works for me.. I just made one minor change.
I gave a different target name:
filename = "/FrenchBrochure.pages.zip"
target = "FrenchBrochure.pages.zip"
ftp.storbinary("STOR " + target, ProgressFile(filename, "rb"), 1024)
Thanks,
-Kartic
It works! Thanks so much for your help! This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Charles Mendell |
last post by:
1. When I go to http://www.w3schools.com/js/default.asp and choose:
2. JS HTML DOM and then choose:
3. the Window object and then choose:
4. Write some text in the windows status bar ( a link)...
|
by: Frances Del Rio |
last post by:
on pop-up, which I have scripted to not show status bar, status bar
still shows up in Firefox. Any way to get Firefox to open pop-ups w/o
status bar at the bottom? thank you.. Frances
|
by: Gordon Truslove |
last post by:
I've been trying to get the printer status using GetPrinter and
Printer_Info_2
I'm getting closer, but it still fails.
Error 122 - The data area passed to a system call is too small....
|
by: Ada |
last post by:
i have a little bit of issue getting the status bar to work properly.
this is what happens now.
when the program loaded, the status is "READY..."
the code is inside the FORM LOAD.
i also...
|
by: Simon Wigzell |
last post by:
I have a little asp progress bar window that I open up with javascript,
sized and located, all the extras turned off. It works by refreshing itself
every second and displaying how much a file...
|
by: Simon Shearn |
last post by:
Hello -
I'm trying to connect to a secure (HTTPS) webservice from a device running
..NET Compact Framework. I'm using the HttpWebRequest class. In cases where
the server is unavailable,...
|
by: Bob |
last post by:
I'm running sql server ver 7.0 SP4.
I have an access project (.adp) that runs a view which is nothing more
than a select statement. Access locks up solid when I try to run this
query - with NO...
|
by: JodiPhillips |
last post by:
G'day,
I have a silly and simple problem that I need some guidance with.
Due to the way our network is set up, I am unable to use the group permissions for Access and have had to implement log...
|
by: buu |
last post by:
so, I have a private object as system.threading.AutoResetEvent, and I would
like to read it's current status.
currently I have an another boolean object wich I update together with an...
|
by: CloudSolutions |
last post by:
Introduction:
For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
| |