> LF or CR cannot be part of a URI But they can be part of a filename, at least on POSIX systems. Are you proposing that only the Windows version of os.path.join strip LF/CR? I don't think that it up to the join function to validate the path, and certainly not to modify the substrings. Would you expect it to complain about this? os.path.join('/', 'AUX')? (AUX is a reserved name and forbidden for file names under Windows.) I don't think it is up to join to validate that the path generated is legal, so I don't think this is a bug in join.
This doesn't sound like a bug. File paths are not URIs: almost all characters are valid in a POSIX filename. Also, sanity checking of user input is up to the caller. I recommend closing this issue.
The join function should know that it will compose a path with the provided string, so I think it should complain or ignore ilegal path/filename components, in regard to the host OS. But if it is not a valid point of view python-wise, one can check his own path :P On Mon, Feb 24, 2014 at 4:03 PM, Steven D'Aprano <report@bugs.python.org>wrote: > > Steven D'Aprano added the comment: > > > LF or CR cannot be part of a URI > > But they can be part of a filename, at least on POSIX systems. Are you > proposing that only the Windows version of os.path.join strip LF/CR? > > I don't think that it up to the join function to validate the path, and > certainly not to modify the substrings. Would you expect it to complain > about this? os.path.join('/', 'AUX')? (AUX is a reserved name and forbidden > for file names under Windows.) > > I don't think it is up to join to validate that the path generated is > legal, so I don't think this is a bug in join. > > ---------- > nosy: +stevenjd > > _______________________________________ > Python tracker <report@bugs.python.org> > <http://bugs.python.org/issue20761> > _______________________________________ >