Le Mardi 25 Octobre 2011 10:31:56 Victor Stinner a écrit : >> Basically, all functions processing filenames, so most functions of >> posixmodule.c. Some examples: >> >> - os.listdir(): FindFirstFileA, FindNextFileA, FindCloseA >> - os.lstat(): CreateFileA >> - os.getcwdb(): getcwd() >> - os.mkdir(): CreateDirectoryA >> - os.chmod(): SetFileAttributesA >> - ...
> This seems way too broad. I changed my mind about this list: I only want to change how filenames are encoded, not how filenames are decoded. So only os.listdir() & os.getcwdb() should be changed, as I wrote in another email in this thread and in the issue #13247. >> - os.getcwdb(): > This you might change. Issue #13247 combines os.getcwdb() and os.listdir(). Read the issue for more information. > It ('?') is a bad choice of signal though, given the other uses > of '?' in paths. If I understood correctly, '?' is a pattern to match any character in FindFirstFile/FindNextFile. Python cannot configure the replacement character, it's hardcoded to "?" (U+003F). > it's just > standard Windows behavior, which results in pathnames that are > perfectly acceptable to Windows APIs, but unreliable in use because > they have different semantics in different Windows APIs. I think that such filenames cannot be used with any Windows function accessing to the filesystem. Extract of the issue: "Such filenames cannot be used, open() fails with OSError(22, "invalid argument: '?'") for example." You can only be used if you want to display the content of a directory, but don't expect to be able to read file content. -- Anyway, you must use Unicode on Windows! The bytes API was just kept for backward compatibility. Victor _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com