call up an EDITOR (vim) from a python script

后端 未结 5 1517
故里飘歌
故里飘歌 2020-12-01 00:19

I want to call up an editor in a python script to solicit input from the user, much like crontab e or git commit does.

Here\'s a snippet fr

5条回答
  •  栀梦
    栀梦 (楼主)
    2020-12-01 00:51

    Calling up $EDITOR is easy. I've written this kind of code to call up editor:

    import sys, tempfile, os
    from subprocess import call
    
    EDITOR = os.environ.get('EDITOR','vim') #that easy!
    
    initial_message = "" # if you want to set up the file somehow
    
    with tempfile.NamedTemporaryFile(suffix=".tmp") as tf:
      tf.write(initial_message)
      tf.flush()
      call([EDITOR, tf.name])
    
      # do the parsing with `tf` using regular File operations.
      # for instance:
      tf.seek(0)
      edited_message = tf.read()
    

    The good thing here is, the libraries handle creating and removing the temporary file.

提交回复
热议问题