无法在optparse中用字符串打断行

时间:2019-02-21 01:56:44

标签: python python-3.x optparse

我正在尝试用optparse破坏\ n的行。示例:line1 \ n line2 但是,当我键入\ 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 个答案:

答案 0 :(得分:3)

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

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

option2,将\n替换为ast.literal_eval的真实新行:

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

请注意,这可能会为格式错误的输入引发例外。