本文介绍了在python3中以字节形式访问命令行参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以访问原始 argv 元素的二进制内容?

Is it possible to access the raw argv elements binary content ?

$ python3 -c'import sys;print(sys.argv);' `echo -ne "\xff\x80\x00\xff"`
['-c', '\udcff\udc80\udcff']

推荐答案

您可以按字节获取 argv 常量,如下所示:

You can obtain the argv contant as bytes as follows:

#!/usr/bin/python3
import sys
arg1_bytes = sys.argv[1].encode(sys.getfilesystemencoding(), 'surrogateescape')

来源:PEP 383 - 系统字符接口中的不可解码字节,通过回答命令行参数作为字节而不是python3中的字符串";另请参阅关于sys.argv as bytes in Python 3k"的回答

Source: PEP 383 - Non-decodable Bytes in System Character Interfaces, via answer on "Command-line arguments as bytes instead of strings in python3"; see also answer on "sys.argv as bytes in Python 3k"

这篇关于在python3中以字节形式访问命令行参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 18:03