Here is a little class that lets you present percent complete information in the form of a progress bar using the '#' character to represent completed portions, space to represent incomplete portions, and the actual percent done (rounded to integer) displayed in the middle:
[############# 33% ]
When you initialize the class, you specify the minimum number (usually 0), the maximum number (your file size, for example), and the number of characters wide you would like the progress bar to be. Note that width includes the brackets  on the ends of the progress bar as well.
You'd probably want to use this in conjuction with the curses module, or something like that so you can over-write the same portion of the screen to make your updates 'animated'.
Python, 39 lines
I used this along with curses to display a progress bar while copying a large file over the network. It was better than looking at an apparently "frozen" screen for a long time telling the user that the copy is really happening.
Of course, nothing ties this progress bar to file copy progress. You can use it for anything that takes a while to do and progress can be measured.