원하는 작업은, 탐색기 내에서, python 스크립트로 처리할 파일을 python script 위로 끌어 놓기(drag & drop)를 했을 때 python script 가 그 파일을 인자로 받아들이도록 하는 것이다. 간단히 테스트 해보면 다음과 같다.
위에 사용된 test.py 는 다음과 같이 system의 argument로 넘어 온 내용을 출력하는 아주 단순한 파일이다.
사실 위 기능은 '그냥' 사용하면 된다. 그런데, 되지 않을 수도 있다. 이 글은 어떻게 이 문제를 해결해 나갔는가, 를 볼 수 있는 글이라고 할 수 있겠다. 나는 원래
w = open('ff.txt', 'w');
로 해서 sys.argv 를 ff.txt 파일에 저장하려 했으나 파일이 만들어지지 않았다. 그래서 곧바로 검색 ㄱㄱㅆ.
아... 구글은 정말 진리다. 첫 번째 검색 결과 페이지에 있는 첫 번째 답변이 걸어 준 링크(Make Python Scripts Droppable in Windows)를 읽어 보면, windows 탐색기의 경우 drop handler로 .py 파일이 등록되지 않은 것 같다고 한다. 그래서 registry 에 키와 값을 직접 적어 넣으면 된다고 한다. 뭐 저런 거 만드는 .reg 파일을 만들고 자시고 하나, 해서 나는 그냥 일단 registry editor 를 열고, HKCR\Python.File\shellex\DropHandler 로 찾아 갔다. 그런데, 저 링크 페이지에 있는 것처럼, 아마도 ActiveState 버전으로 python 을 설치하면 이 drop handler 가 자동으로 되는듯 싶고, 나는 그것으로 했는지 1 drop handler로 제대로 등록되어 있었다. 뭐지? 혹시나 해서 python script 가 실행된 경로를 뿌려 봤다. 2
역시나. 아니나 다를까, '현재 경로'가 system32 로 되어 있었고, 내가 파일을 만들 때 파일 이름만 써 넣었으므로 system32에 ff.txt 가 만들어져야 한다. 그래서 그 곳을 가보았는데, 없다. 흠, 생각난 것은, windows 7 에서는 아마 권한 문제 때문에 안 될 것이라는 것. 쳇, 이젠 윈도우즈에서도 이 권한이 나를 귀찮게 하는데, 하여튼 그래서 위처럼 아예 D 에다 파일을 만들었더니 잘 된다. ㅋㅋㅋ 3
저런 경우, 만약 '현재 경로'를 인자로 받은 파일이 있는 경로로 바꾸기 위해서는 그냥 다음과 같이 하면 된다.
'컴퓨터 > 자질구레 팁' 카테고리의 다른 글
지정된 항목을 빨리 선택하기 (0) | 2011.01.31 |
---|---|
Makefile 파일을 자동으로 만들기 (0) | 2011.01.19 |
유용한 파이썬 라이브러리 (0) | 2010.12.21 |
도스창 크기 등을 조절하기 (0) | 2010.12.15 |
윈도우즈에서 vim 의 backup 파일 생성하지 않게 하기 (0) | 2010.12.14 |