사용자 지정 프로토콜 처리기 및 URI 체계 만들기! - 2 부

5307 단어 urluriwebpython

다시 오신 것을 환영합니다.



이 미니시리즈로! 오늘 포스팅에서는 실제로 스크립트를 실행하는 방법을 보여드리겠습니다! 자, 시작하겠습니다! BTW, 내가 무슨 말을 하는지 모르겠다면 먼저 읽고 이해하세요!

오늘 우리는 무엇을 만들고 있습니까?



글쎄, 나는 당신이 물어볼 것이라고 생각했습니다. 오늘은 내가 말했듯이 실제로 파일에서 코드를 실행할 것입니다! 흥분한?



하지만 어떻게?



기본적으로 핸들러python_open의 기능을 변경하거나 수정할 것입니다!

새로운 전제 조건


  • sys(표준 라이브러리에 포함됨)
  • subprocess(표준 라이브러리에 포함됨)

  • 시작하자



    따라서 핸들러python_open의 함수를 변경하여 인수로 전달된 스크립트를 실행하도록 하겠습니다!

    첫째, 변화

    print(urlreq.urlopen("pytohn://something/random/file.txt"))
    

    에게

    urlArg = sys.argv[1]
    urlreq.urlopen(urlArg)
    

    그리고 상단에 import sys를 추가하는 것을 잊지 마세요!

    이제 핸들러는 하드코딩된 입력 대신 인수로 전달된 URL을 읽을 것입니다! 예!

    다음으로 핸들러를 편집해야 합니다.
    이전 코드는 다음과 같습니다.

    class PyProtoHandler(urlreq.BaseHandler):
        def python_open(self, req):
            fullUrl = req.get_full_url()
            filePath = "".join(fullUrl.split("://")[1:])
            return filePath
    

    새 코드는 다음과 같습니다.

    class PyProtoHandler(urlreq.BaseHandler):
        def python_open(self, req):
            fullUrl = req.get_full_url()
            filePath = "".join(fullUrl.split("://")[1:])
            parsed_cmd = 'python {}'.format(filePath)
            subprocess.run(parsed_cmd, shell=True)
    

    그래서 우리는 여기서 무엇을 바꿨습니까? 다음 줄에서 parsed_cmd에 의해 실행되는 명령을 포함하는 문자열인 subprocess라는 새 변수를 만들었습니다. 그리고 실행 결과가 자동으로 출력됩니다.

    그리고 오늘의 코드는 끝났습니다!

    마지막으로, 그것을 테스트!



    이제 코드를 테스트해야 합니다!

    터미널(cmd 또는 bash 등)을 열고 코드가 있는 디렉토리를 찾은 다음 파일을 실행해야 합니다! 자, 해보자! 그러나 명령 뒤에 파일 경로를 추가하는 것을 잊지 마십시오! (시스템에 따라 다릅니다.)

    데모.py -





    $ python pyProto.py D:/Programming/Python/demo.py
    If this printed then the code works!
    


    끝?



    코드의 일부만 수정했기 때문에 짧은 기사였습니다! 하지만 아직 끝났다고 생각하지 마세요! 3부가 곧 공개됩니다! 거기에서 만나자! 또한 파일 이름을 protoHandler.py에서 pyProto.py로 변경했습니다. 또한 보너스가 있습니다. 이 게시물을 포함하여 내 모든 게시물의 코드가 포함된 저장소를 내 GitHub에 만들었습니다! 링크는 다음과 같습니다 - pybash1/devtoCode



    그리고, 안녕!!

    좋은 웹페이지 즐겨찾기