This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2010年11月05日 10:06 by fcr, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| argtest | fcr, 2010年11月05日 10:06 | test program to reproduce problem | ||
| Messages (6) | |||
|---|---|---|---|
| msg120480 - (view) | Author: Frank Rügheimer (fcr) | Date: 2010年11月05日 10:06 | |
Words in quoted command line arguments containing whitespace are split into separate entries of the argument vector sys.argv. This implemetation (quote removal + word splitting) removes information required to read string arguments passed via the command line. The expected behaviour would be to unquote the argument, but not to conduct word splitting within the quoted text. ---- Test program output: > ./argtest arg1 arg2 "this should be a single argument" ['./argtest', 'arg1', 'arg2', 'this', 'should', 'be', 'a', 'single', 'argument'] ---- (observed with Python 3.1.2 (r312:79147, Oct 28 2010, 14:12:33) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 |
|||
| msg120484 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年11月05日 11:24 | |
I don't see this behavior on MacOS: $ ./argtest arg1 arg2 "this should be a single argument" 2.6.1 (r261:67515, Feb 11 2010, 15:47:53) [GCC 4.2.1 (Apple Inc. build 5646)] ['./argtest', 'arg1', 'arg2', 'this should be a single argument'] This splitting is done by the shell (Unix-like systems) or by the C runtime (Windows), not by Python. What OS are you running? |
|||
| msg120486 - (view) | Author: Frank Rügheimer (fcr) | Date: 2010年11月05日 12:00 | |
2.6.18-194.17.1.el5 #1 SMP Wed Sep 29 12:51:33 EDT 2010 i686 i686 i386 GNU/Linux GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) I wrote test program in C to do the same thing as before and the arguments are treated properly: > ./testcargs arg1 arg2 "this should be one arg" argument 0 is: ./testcargs argument 1 is: arg1 argument 2 is: arg2 argument 3 is: this should be one arg My suspicion is that sys implementation goes into a branch intended for a different OS. |
|||
| msg120487 - (view) | Author: Eric V. Smith (eric.smith) * (Python committer) | Date: 2010年11月05日 12:13 | |
The python version works for me also on a Fedora box with 3.2 and 2.7. What shell are you using? Did you compile this python yourself, or did it come with your distro? |
|||
| msg120488 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2010年11月05日 12:23 | |
Works fine for me on Gentoo linux. What exactly is 'python' in your path, and what happens if you do /usr/bin/python3 argtest? I'm 99.99% certain this is not a bug in Python, otherwise it would have been reported long before now, since it would represent a major change in behavior. |
|||
| msg120491 - (view) | Author: Frank Rügheimer (fcr) | Date: 2010年11月05日 13:09 | |
You are right, it seems to work when the file is passed directly into python so the quotes are stripped somewhere before python even gets to see them. Thanks |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:08 | admin | set | github: 54531 |
| 2010年11月05日 13:11:26 | eric.smith | set | nosy:
eric.smith, r.david.murray, fcr resolution: not a bug components: - None stage: resolved |
| 2010年11月05日 13:09:25 | fcr | set | status: open -> closed messages: + msg120491 |
| 2010年11月05日 12:23:07 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg120488 |
| 2010年11月05日 12:13:15 | eric.smith | set | messages: + msg120487 |
| 2010年11月05日 12:00:22 | fcr | set | messages: + msg120486 |
| 2010年11月05日 11:24:58 | eric.smith | set | nosy:
+ eric.smith messages: + msg120484 |
| 2010年11月05日 10:06:34 | fcr | create | |