Hi,
Currently shutil.copyfileobj returns nothing.
I would like to be able to find out how many bytes were copied.
Whilst most file-like objects have a .tell() which you could use, some don’t,
and .tell() is not guaranteed to measure the number of bytes, it could measure
with other units.
I don’t think changing the return value from None to not-None would be
backwards incompatible.
We could also do the same change for all other shutil.copy* methods (except
copytree).
Looking at the code, this seems straightforward to implement.
Existing code:
```
def copyfileobj(fsrc, fdst, length=0):
"""copy data from file-like object fsrc to file-like object fdst"""
# Localize variable access to minimize overhead.
if not length:
length = COPY_BUFSIZE
fsrc_read = fsrc.read
fdst_write = fdst.write
while True:
buf = fsrc_read(length)
if not buf:
break
fdst_write(buf)
```
New code:
```
def copyfileobj(fsrc, fdst, length=0):
"""copy data from file-like object fsrc to file-like object fdst"""
# Localize variable access to minimize overhead.
if not length:
length = COPY_BUFSIZE
fsrc_read = fsrc.read
fdst_write = fdst.write
bytes_copied = 0
while True:
buf = fsrc_read(length)
if not buf:
break
fdst_write(buf)
bytes_copied += len(buf)
return bytes_copied
```
Regards,
Matt
Matthew Davis
Data Analytics Senior Lead
Telstra Energy – Decision Science & AI
E: [email protected]<mailto:[email protected]> |
M: 0415762868
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/ZKVI4DE7RLYQNLV3XYUUW24FOO57WB5P/
Code of Conduct: http://python.org/psf/codeofconduct/