[issue3177] Add shutil.open
report at bugs.python.org
Mon Apr 23 15:58:39 CEST 2012
Éric Araujo <merwok at netwok.org> added the comment:
Thanks for relaunching this!
> I'm not sure I understand why this was moved to shutil.open. It seems appropriate to try to accomplish what
> os.startfile() does in a cross-platform way. Don't many of the other os.* calls do this--check os.name and
> then "do the right thing".
They don’t. The os module is a thin wrapper on top of system functions. Cross-platform compat is not achieved with os.name checks but with platform-specific code in the C files. As Windows provides a call named startfile, it is exposed. When we want to provide a higher-level API on top of system calls, we use other modules such as shutil.
> fix minor shutil.disk_usage() doctext typo
Would you report this on another bug report or simply with a mail to the docs at python.org mailing list? Thanks.
> Name changed from shutil.open to shutil.launch due to namespace conflict with open() builtin within the shutil
> module and for users that do from shutil import *
I don’t think these are good arguments. A lot of modules expose a function named open: tarfile, codecs, tokenize... Python has namespaces, let’s use them. The argument about import * is not strong either in my opinion, because all our docs recommend against this idiom.
One argument against open is that the other open functions I mention above return a file object, like the builtin open. With this in mind I agree that a better name should be found. I dislike launch though because it brings to my mind the idea of running/executing a program, not opening it in the appropriate program.
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list