호출에 대해 shlex.split
을 사용하여 토큰 화합니다. 그 인수 중 하나가 UNC 경로입니다 그러나, 상황이 털이 얻을 : 당신이 볼 수 있듯이shlex.split가 UNC 경로를 준수하도록 만들기
import shlex
raw_args = '-path "\\\\server\\folder\\file.txt" -arg SomeValue'
args = shlex.split(raw_args)
print raw_args
print args
는
-path "\\server\folder\file.txt" -arg SomeValue
['-path', '\\server\\folder\\file.txt', '-arg', 'SomeValue']
을 생산, 앞의 백 슬래시는 아래로 제거됩니다. 다음 두 줄을 추가하여이 문제를 해결하고 있지만 더 좋은 방법이 있습니까?
if args[0].startswith('\\'):
args[0] = '\\' + args[0]
질문이 확실하지 않습니다. 위의 예제에서 문자열 리터럴을 사용하고 있습니다. 당신은 dusan의 대답에서 기술을 사용하거나 단순한 문자열 리터럴을 사용하여 그들에 대처할 수 있습니다. 그러나, 당신은 문자열이 파일에서 가져온 내 대답에 댓글을 달았습니다. 이 경우, 파이썬은 그것들을 만지려고 시도조차하지 않을 것이고, 똑같은 양의 슬래시를 갖게 될 것입니다. 파일에서 문자열을로드하여 인쇄 해보십시오. 어느 쪽이든, 또는 나는 명백한 것을 놓치고있다. –
@Alex 좋은 지적. 위 예제의 파일에서 문자열을로드 할 때 보았던 동작을 재현 했으므로 유사하게 동작 할 것이라고 가정했습니다. 파일에서로드 된 문자열이 어떻게 보이는지 다시 확인합니다. –