• 파이썬 cmd 모듈

    2017. 9. 15. 00:31

    by. 위지원

    cmd모듈이란?


    Support for line-oriented command interpreters


    라고 홈페이지에서는 소개해주고 있다. 라인 지향이란 무엇일까? 이제부터 알아보자

    일단 설명만 주구장창 읽어보니 모르겠어서 무작정 예제를 실행해보았다 .
    아하 '뭘뭘해줘 이만큼'라고 명명함과동시에 파라미터를 넘기는 식으로 함수를 실행해주는 것 같다.

    여러가지 메서드가 있는데 중요한걸 알아보자

    일단 cmdloop를 통해 계속해서 명령문을 받아드릴 수 있도록 하는게  while문을 대체할 수 있을 것같다.


    Cmd.cmdloop(intro=None)

    Repeatedly issue a prompt, accept input, parse an initial prefix off the received input, and dispatch to action methods, passing them the remainder of the line as argument.

    The optional argument is a banner or intro string to be issued before the first prompt (this overrides the intro class attribute) [생략..]


    또 사이트의 예제에 보면 아래와 같이 되어있다. self,arg는 기본인자로 아래의 형태가 기본 형태이다.

      def do_forward(self, arg):
            'Move the turtle forward by the specified distance:  FORWARD 10' #help forward를 치면 출력될 문구이다
            forward(*parse(arg)) 이 문구를 치면 실행될 함수이다.

    아주아주 간단하게 코드를 짜봣다 사용방법은 쉬워서 어려운게 없당 ㅎㅎ


    import cmd


    class my(cmd.Cmd):

        intro = " Hello "

        prompt = " (mdp) "

        file= None



        def do_hello(self,arg):

            'print Hello~'

            self.hello(arg)


        def do_name(self,arg):

            'print name'

            self.name()


        def do_job(self,arg):

            'print job'

            self.job()


        def hello(self,arg):

            print('Hello~',arg)


        def name(self):

            print('weejiwon')


        def job(self):

            print('College student ')


    my().cmdloop()



    weejw@weejwPC:~/observer$ python3 my.py 

     Hello 

     (mdp) ?


    Documented commands (type help <topic>):

    ========================================

    hello  help  job  name


     (mdp) help hello

    print Hello~

     (mdp) hello weejiwon

    Hello~ weejiwon

     (mdp) help job

    print job

     (mdp) job

    College student 

     (mdp) help name

    print name

     (mdp) name

    weejiwon

     (mdp) 




    profile
    위지원

    데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨