无法在 optparse 中用字符串换行

Can't break a line with string in optparse

我正在尝试使用 optparse 以 \n 换行。示例:第 1 行 \n 第 2 行 但是,当我输入 \n 时,它不会中断,只是将其打印为 line1 \n line2,而不是中断。这是我的代码:

import optparse
import sys

def main():
    progparse = optparse.OptionParser("usage " + "--message <text here>")
    progparse.add_option("--message", dest="msg_txt", type="string", help="Type the message you want to send")

    msg_txt = ""

    if (options.msg_txt == None):
        print(progparse.usage)
        sys.exit()

    print(options.msg_txt)

if __name__ == '__main__':
    main()

如果我只是用 \n 做一个简单的打印语句,那么它会断行,为什么在使用 optparse 时它不这样做?

选项 1,在输入中使用 real 新行:

$ python3 test.py --message "line1
> line2
> line3"
line1
line2
line3

option2, eval \n as real new line with ast.literal_eval:

print(ast.literal_eval('"' + options.msg_txt + '"'))

请注意,这可能会引发格式不正确的输入的异常。