Hi, effbot: > > btw, Python's remove/unlink implementation is slightly > > broken -- they both map to unlink, but that's not the > > right way to do it: > > > > from SUSv2: > > > > int remove(const char *path); > > > > If path does not name a directory, remove(path) > > is equivalent to unlink(path). > > > > If path names a directory, remove(path) is equi- > > valent to rmdir(path). > > > > should I fix this? BDFL: > That's a new one -- didn't exist when I learned Unix. Yes, this 'remove()' has been added relatively late to Unix. It didn't existed for example in SCO XENIX 386 (the first "real" OS available for relatively inexpensive IBM-PC arch boxes long before the advent of Linux). Changing the behaviour of Pythons 'os.remove()' on Unices might break some existing code (although such code is not portable to WinXX anyway): pf@artcom0:ttyp3 ~ 7> mkdir emptydir pf@artcom0:ttyp3 ~ 8> python Python 1.5.2 (#1, Jul 23 1999, 06:38:16) [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> import os >>> try: ... os.remove('emptydir') ... except OSError: ... print 'emptydir is a directory' ... emptydir is a directory >>> > I guess we can fix this in 2.1. Please don't do this without a heavy duty warning in a section about expected upgrade problems. This change might annoy people, who otherwise don't care about portability and use Python on Unices only. I imagine people using something like this: def cleanup_junkfiles(targetdir) for n in os.listdir(targetdir): try: os.remove(n) except OSError: pass Regards, Peter -- Peter Funk, Oldenburger Str.86, D-27777 Ganderkesee, Germany, Fax:+49 4222950260 office: +49 421 20419-0 (ArtCom GmbH, Grazer Str.8, D-28359 Bremen)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4