Не могу разбить строку со строкой в ​​optparse - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь разбить строку с \ n с помощью optparse.Пример: 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 голосов
/ 21 февраля 2019

option1, используйте real новую строку для ввода:

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

option2, eval \n в качестве реальной новой строки с ast.literal_eval :

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

обратите внимание, что это может вызвать исключение для плохо сформированного ввода.

...