我正在尝试用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时却不这样做呢?
答案 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 + '"'))
请注意,这可能会为格式错误的输入引发例外。