2012-02-13 2 views
1

Windows에서 파일 이름 등에 백 슬래시를 사용하는 방식에 대해 알고 있습니다. 그러나 필자는 코드에서 생성하는 문자열에 백 슬래시를 사용하지 않습니다. 그러나 :Windows에서 파이썬 스크립트에 파일 놓기 - Windows에서 역 슬래시를 사용하지 마십시오.

Windows 탐색기에서 파일을 파이썬 스크립트에 "드롭"할 때 전달되는 문자열에 백 슬래시가 포함됩니다. sys.argv 목록에있는 문자열의 이스케이프 시퀀스로 변환 한 다음 그 이후에는 변경할 방법이 없습니다. (제안 된 곳으로 열기)

Windows에서 리터럴 문자열을 전달할 수있는 방법이 있습니까? ..이 문제를 해결할 수있는 다른 방법은 없나요?

나는 스크립트가 쓰레기로되는 것을 좋아하지만, 나를 막는 유일한 것은 윈도우 백 슬래시입니다.

는 편집 :

죄송합니다 모두 오류가 실제로 문자열의 통과 아니었다 - 누군가가 아래에 지적한대로,하지만 여전히 다른 사람을 도울 수 :

당신이 절대 경로 이름을 사용하는지 확인 Windows 쉘이 명령 행에서와 같이 현재 디렉토리에서 스크립트를 실행하지 않기 때.입니다. 이로 인해 절대가 아닌 단일 부분 경로 이름에 쓰려고 시도 할 때 권한 거부 오류가 발생합니다.

+1

백 슬래시가 이스케이프 시퀀스로 변환되는 이유는 무엇입니까? 귀하의 편의를 위해 인쇄 할 때 통역사가 탈출하는 것이 아니라고 확신합니까? –

+0

복제본은 http://stackoverflow.com/questions/1855477/how-to-access-sys-argv-or-any-string-variable-in-raw-mode – ironchefpython

+0

중복되지 않습니다. OP의 부분에서 잘못 해석 된 오류. – Irfy

답변

0

재생할 수 없습니다. 이 : 처음에 두 번째 파일을 삭제 한 후

['D:\\workspaces\\generic\\SO_Python\\9266551.py', 'D:\\workspaces\\generic\\SO_Python\\9254991.py'] 
[True, True] 

:

import os, sys 
print sys.argv 
print map(os.path.exists, sys.argv) 
raw_input() 

나에게이 있습니다. Python 2.7.2 (Windows). 이 코드를 사용해 볼 수 있습니까?

+0

맞습니다. 근본적인 문제를 해결하고 위에 해결책을 게시했습니다. – cemulate

+1

흠, 그렇다면 자신의 대답을 작성하고 받아 들인 것이 더 좋을 것입니다. 그렇지 않으면 질문에 답이없는 채 대답 할 것입니다. 실제로 Btw, sys.argv [0]은 절대 경로입니다 스크립트를 사용하면 모든 절대 경로를 계산할 수 있고 스크립트의 경로를 하드 코딩하지 않아도됩니다. – Irfy

관련 문제