Exploratory query

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Don Todd

    Exploratory query

    I'm a total python newbie and have not really even begun to learn.
    Before I start, however, I would like to know if python is the proper
    tool for what I want to do.

    I want to query various MH mailboxes to see if they contain new mail.
    There is a program, flist, that will do this, but it is a pain to run it
    every time. I'd like something a la xbiff or gbiffy.

    Would python allow me to run flist and use its output, or would I need
    to re-write flist? The idea is to keep something on the screen and poll
    the mailboxes every n seconds and update the display.

    TIA,

    dt
  • Skip Montanaro

    #2
    Re: Exploratory query


    Don> Would python allow me to run flist and use its output, or would I
    Don> need to re-write flist? The idea is to keep something on the screen
    Don> and poll the mailboxes every n seconds and update the display.

    You can do this quite easily. Presuming you just want to display flist's
    output for now, but maybe mangle it later, you can probably get away with
    something simple like this:

    import time
    import commands

    while True:
    status, output = commands.getsta tusoutput("flis t")
    if status != 0:
    print "flist barfed... exiting"
    # right here you could massage output
    print output
    time.sleep(300) # five minutes

    Skip

    Comment

    • Don Todd

      #3
      Re: Exploratory query

      In article <mailman.106005 6189.31290.pyth on-list@python.org >, Skip Montanaro wrote:[color=blue]
      >
      > Don> Would python allow me to run flist and use its output, or would I
      > Don> need to re-write flist? The idea is to keep something on the screen
      > Don> and poll the mailboxes every n seconds and update the display.
      >
      > You can do this quite easily. Presuming you just want to display flist's
      > output for now, but maybe mangle it later, you can probably get away with
      > something simple like this:
      >
      > import time
      > import commands
      >
      > while True:
      > status, output = commands.getsta tusoutput("flis t")
      > if status != 0:
      > print "flist barfed... exiting"
      > # right here you could massage output
      > print output
      > time.sleep(300) # five minutes
      >
      > Skip[/color]

      Thanks, Skip! That pretty much does what I want; I modified it to do
      "flist mailbox1", "flist mailbox2" etc.

      Is there a way to run this in a terminal and have it uptate the new over
      the old? I'm thinking it would be sweet to run it in tranparent
      terminal. Perhaps I'll look into using a gui, too.

      dt

      Comment

      • Skip Montanaro

        #4
        Re: Exploratory query

        >>>>> "Don" == Don Todd <spammenot@ning unaparte.com> writes:

        Don> In article <mailman.106005 6189.31290.pyth on-list@python.org >, Skip Montanaro wrote:[color=blue][color=green]
        >>[/color][/color]
        Don> Would python allow me to run flist and use its output, or would I
        Don> need to re-write flist? The idea is to keep something on the screen
        Don> and poll the mailboxes every n seconds and update the display.[color=blue][color=green]
        >>
        >> You can do this quite easily. Presuming you just want to display flist's
        >> output for now, but maybe mangle it later, you can probably get away with
        >> something simple like this:
        >>
        >> import time
        >> import commands
        >>
        >> while True:
        >> status, output = commands.getsta tusoutput("flis t")
        >> if status != 0:
        >> print "flist barfed... exiting"
        >> # right here you could massage output
        >> print output
        >> time.sleep(300) # five minutes
        >>
        >> Skip[/color][/color]

        Don> Thanks, Skip! That pretty much does what I want; I modified it to
        Don> do "flist mailbox1", "flist mailbox2" etc.

        Also, note that I forgot the break statement in the exit branch. Should
        have been:

        if status != 0:
        print "flist barfed... exiting"
        break

        Don> Is there a way to run this in a terminal and have it uptate the new
        Don> over the old? I'm thinking it would be sweet to run it in
        Don> tranparent terminal. Perhaps I'll look into using a gui, too.

        Sure. There are a couple ways to do it. The crude way might just be to put


        commands.getsta tusoutput("clea r")

        at the top of the list. The cleaner way would probably be to use the
        curses module. I've no experience to make any suggestions, but the curses
        module docs at



        have a link to Andrew Kuchling's "Curses with Python" tutorial.

        Skip


        Comment

        Working...