1

我有一些代码有时会从命令行运行(django 管理命令),有时不会(django changelist 操作)。在此代码中,如果引发某个异常,我可以获得一些用户输入并在命令提示符 (stdin) 可用的情况下继续操作。否则,我需要让异常传播或做一些不同的事情。

例如

def copy_account_settings(old_acct_domain, new_acct_domain):
  try:
    new_account = Account.objects.get(domain = new_acct_domain)
  except Account.DoesNotExist:
    print ("Couldn't find an account matching %s." % new_acct_domain)
    if <command prompt is available>:
      print "Would you like to create the account? (y/n)"
      if raw_input().lower().strip()='y':
        # get some more input and create the account and move on
    else:
      raise

你会怎么做?

4

1 回答 1

0

也许您可以检查 TTY?

import os
if os.isatty(0):

如果会话是交互式的,那应该返回 true,否则返回 false。

于 2013-04-23T01:45:03.967 回答