[Python-Dev] Python-3.0, unicode, and os.environ
a.badger at gmail.com
Fri Dec 5 23:48:38 CET 2008
Nick Coghlan wrote:
> Toshio Kuratomi wrote:
>> Guido van Rossum wrote:
>>> Glob was just an example. Many use cases for directory traversal
>>> couldn't care less if they see *all* files.
>> Okay. Makes it harder to prove correct or not if I don't know what the
>> use case is :-) I can't think of a single use case off-hand.
>> Even your example of a ??.txt file making retrieval of *.py files fail
>> is a little broken. If there was a ??.py file that was undecodable the
>> program would most likely want to know that file existed.
> Why? Most programs won't be able to do anything with it. And if the
> program *can* do something with it... that's what the bytes version of
> the APIs are for.
Nonsense. A program can do tons of things with a non-decodable
filename. Where it's limited is non-decodable filedata.
For instance, if you have a graphical text editor, you need to let the
user select files to load. To do that you need to list all the files in
a directory, even the ones that aren't decodable. The ones that aren't
decodable need to substitute something like:
str(filename, errors='replace') + '(Filename not encoded in UTF8)'
in the file listing that the user sees. When the file is loaded, it
needs to access the actual raw filename. The file can then be loaded
and operated upon and even saved back to disk using the raw, undecodable
If you have a file manager, you need to code something that let's the
user move the file around. Once again, the program loads the raw
filenames. It transforms the name into something representable to the
user. It displays that. The user selects it and asks that it be moved
to another location. Then the program uses the raw filename to move
from one location to another.
If you have a backup program, you need to list all the files in a
directory. Then you need to copy those files to another location. Once
again you have to retrieve the byte version of any non-decodable filenames.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 197 bytes
Desc: OpenPGP digital signature
More information about the Python-Dev