Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将argparse中的所有内容重定向到套接字连接,但通常不重定向到标准输出_Python_Sockets_Redirect_Argparse - Fatal编程技术网

Python 将argparse中的所有内容重定向到套接字连接,但通常不重定向到标准输出

Python 将argparse中的所有内容重定向到套接字连接,但通常不重定向到标准输出,python,sockets,redirect,argparse,Python,Sockets,Redirect,Argparse,我试图弄清楚如何将argparse.parse_args()中的所有输出重定向/捕获(以字符串形式)到upd套接字(服务器),而不是从标准输出 例如,运行此代码时: import argparse parser = argparse.ArgumentParser(prog='PROG') parser.add_argument('-x', nargs=2) parser.add_argument('--foo', nargs=2, metavar=('bar', 'baz')) args

我试图弄清楚如何将argparse.parse_args()中的所有输出重定向/捕获(以字符串形式)到upd套接字(服务器),而不是从标准输出

例如,运行此代码时:

import argparse

parser = argparse.ArgumentParser(prog='PROG')

parser.add_argument('-x', nargs=2)

parser.add_argument('--foo', nargs=2, metavar=('bar', 'baz'))

args = parser.parse_args('-x p g -h'.split())

使用Python 3.4+,您可以使用

下面是一个示例程序,演示了这种捕获/重定向

#/usr/bin/env蟒蛇3
导入argparse
输入io
从contextlib导入重定向\u stdout
def argparser(args_external=None):
parser=argparse.ArgumentParser(description=“示例程序”)
parser.add_参数(
“-v”、“--verbose”、action=“store\u true”,
help=“启用详细输出”)
arguments=parser.parse_args(args_external)#None->sys.argv
#此字符串转到标准输出,但被重定向标准输出捕获
打印(“verbose=={}”.format(arguments.verbose))
返回参数
def main():
f=io.StringIO()
使用重定向标准输出(f):
argparser()
s=f.getvalue()
print(“此语句发生在argparser运行之后”)
打印(“argparser:{}.格式中的字符串内容”)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
输出

%python3 example.py-v
此语句发生在argparser运行之后
argparser中的字符串内容:verbose==True

另外,
ArgumentParser().parse_args()
将接受一个列表(默认为sys.argv),如果您想多次调用argparser

您在谈论哪个输出?
args
名称空间?错误消息?帮助或用法消息?从解析器输出的所有错误、帮助和用法消息。parse_args('-x p g-h'.split())。。由'-h'或参数/语法错误引起。最近关于日志记录错误的这一错误是相关的:。如果输出不是到
stdout
则是到
stderr
。您可以重定向其中一个或两个。