Eric V. Smith <e...@trueblade.com> added the comment:
I agree that the current behavior makes sense. I think "preserve the literal value of the next character" means the space won't be interpreted as a separator. In the first example (I think better written as shlex.split(r'a \ b')), the first space is a separator. The second space is not a separator because of the backslash, so it's part of the second token ' b'. In the second example (shlex.split(r'a \ b')), the first space is a separator, the second space is not a separator because of the backslash, and the third space is a separator. This explains why there's no space before the 'b'. I assume peter.otten's example is bash. I can confirm with zsh: [~]$ python3 -c 'import sys; print(sys.argv)' a b ['-c', 'a', 'b'] [~]$ python3 -c 'import sys; print(sys.argv)' a \ b ['-c', 'a', ' b'] [~]$ python3 -c 'import sys; print(sys.argv)' a \ b ['-c', 'a', ' ', 'b'] I'm going to close this. But anyone wants to suggest a documentation patch, feel free to reopen this. Also, changing this would no doubt break some code, so I'd recommend against changing it even if I didn't think it was doing the right thing. ---------- nosy: +eric.smith resolution: -> not a bug stage: -> resolved status: open -> closed type: -> behavior _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35787> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com