[PYTHON] shlex.split의 반대는 무엇입니까?
PYTHONshlex.split의 반대는 무엇입니까?
shlex.split의 결과를 어떻게 반전시킬 수 있습니까? 즉, 인용 부호가있는 문자열 목록이 주어지면 어떻게 "유닉스 쉘과 닮은"인용 문자열을 얻을 수 있습니까?
필자는 파이썬 버그를 찾아 내고 여기에 대응하는 기능 요청을 만들었습니다.
해결법
-
==============================
1.이제 우리는 (3.3) shlex.quote 함수를 가지고 있습니다. 다른 것은 pipe.quote가 옮겨지고 문서화 된 것입니다 (pipes.quote를 사용하는 코드는 여전히 작동 할 것입니다). 전체 토론은 http://bugs.python.org/issue9723을 참조하십시오.
이제 우리는 (3.3) shlex.quote 함수를 가지고 있습니다. 다른 것은 pipe.quote가 옮겨지고 문서화 된 것입니다 (pipes.quote를 사용하는 코드는 여전히 작동 할 것입니다). 전체 토론은 http://bugs.python.org/issue9723을 참조하십시오.
subprocess.list2cmdline은 사용해서는 안되는 전용 함수입니다. 그러나 그것은 shlex로 옮겨지고 공식적으로 공개 될 수 있습니다. http://bugs.python.org/issue1724822도 참조하십시오.
-
==============================
2.pipe.quote를 사용하는 것은 어떻습니까?
pipe.quote를 사용하는 것은 어떻습니까?
import pipes strings = ["ls", "/etc/services", "file with spaces"] " ".join(pipes.quote(s) for s in strings) # "ls /etc/services 'file with spaces'"
.
-
==============================
3.하위 프로세스는 subprocess.list2cmdline ()을 사용합니다. 공식 공개 API는 아니지만 하위 프로세스 문서에 언급되어 있으며 사용하는 것이 안전하다고 생각합니다. pipe.open ()보다 더 정교합니다 (더 좋든 나쁘 든).
하위 프로세스는 subprocess.list2cmdline ()을 사용합니다. 공식 공개 API는 아니지만 하위 프로세스 문서에 언급되어 있으며 사용하는 것이 안전하다고 생각합니다. pipe.open ()보다 더 정교합니다 (더 좋든 나쁘 든).
-
==============================
4.'foo'와 'foo' "는 shlex.split에 의해 같은 목록으로 변환됩니다.
'foo'와 'foo' "는 shlex.split에 의해 같은 목록으로 변환됩니다.
In [44]: shlex.split("'foo'") Out[44]: ['foo'] In [45]: shlex.split("foo") Out[45]: ['foo']
그래서 모든 경우에 shlex.split을 뒤집을 수 있다고 생각하지는 않습니다 만, 이것은 당신을 닫을 수 있습니다 :
In [20]: import subprocess In [21]: subprocess.list2cmdline(shlex.split('prog -s "foo bar"')) Out[21]: 'prog -s "foo bar"' In [22]: subprocess.list2cmdline(shlex.split('prog -s "foo bar" "baz"')) Out[22]: 'prog -s "foo bar" baz'
-
==============================
5.Shlex.join ()을 추가하는 기능 요청이 있습니다. 현재로서는, 대부분 shlex.quote ()로 넘어가는 것처럼 대부분 진행되지는 않습니다. 버그 보고서에는 제안 된 구현이 언급되어 있습니다.
Shlex.join ()을 추가하는 기능 요청이 있습니다. 현재로서는, 대부분 shlex.quote ()로 넘어가는 것처럼 대부분 진행되지는 않습니다. 버그 보고서에는 제안 된 구현이 언급되어 있습니다.
' '.join(shlex.quote(x) for x in split_command)
https://bugs.python.org/issue22454를 참조하십시오.
from https://stackoverflow.com/questions/4748344/whats-the-reverse-of-shlex-split by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 모델없이 Django 폼을 가질 수 있습니까? (0) | 2018.10.22 |
---|---|
[PYTHON] 파이썬에서 기본 __hash__은 무엇입니까? (0) | 2018.10.22 |
[PYTHON] Python / Pandas에서 두 행의 차이 계산하기 (0) | 2018.10.22 |
[PYTHON] 언제 내가 hstack / vstack 대 vstack과 vs column_stack의 연결을 사용해야합니까? (0) | 2018.10.22 |
[PYTHON] pandas DataFrame에서 그룹화 된 데이터의 막대 그래프 그리기 (0) | 2018.10.22 |