【发布时间】:2018-06-01 11:07:18
【问题描述】:
在 Python 中,使用argparse,有没有办法解析包含作为参数给出的换行符的文本?
我有这个脚本:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument('text', help='some text with newline')
args = parser.parse_args(["line1\nline2"])
print(args.text)
按预期打印:
line1
line2
但如果我在命令行中给出参数(在上面的脚本中更改为args = parser.parse_args() 之后)它不会做同样的事情。例如:
$ ./newline2argparse.py "line1\nline2"
line1\nline2
对此有什么想法吗?
【问题讨论】:
-
您的 shell 不会将
\n解释为换行符。你用的是那个 bash 吗? -
which $SHELL打印出/bin/bash。我在 Mac OS 上。但是应该有办法在python脚本中处理这个问题? -
根据this answer可以使用
./newline2argparse.py $'line1\nline2'。
标签: python python-3.x argparse