gpt4 book ai didi

python - osx python - 如何解码 sys.argv?

转载 作者:行者123 更新时间:2023-11-30 23:46:26 24 4
gpt4 key购买 nike

我认为我什至没有使用时髦的字符 - 只是试图传递“-d”,但我的破折号似乎被弄乱了。如果我只打印 sys.argv[1] 看起来不错,但如果我打印整个列表 sys.argv,我可以看到时髦的字符而不是破折号。Mac OSX 10.6.8Python 2.6.1

#!/usr/bin/env python
import sys
if __name__ == "__main__":
try:
print "SVH FLAG sys.argv ",sys.argv

num_args = len(sys.argv)
for i in range(0,num_args):
print "SVH FLAG sys.argv[",i,"] ",sys.argv[i]

except:
print "problem with sys.argv"

当我用 -d 调用它时,这给了我这个:./deleteme.py –d/Library/Python/2.6/site-packages

SVH FLAG sys.argv  ['./deleteme.py', '\xe2\x80\x93d', '/Library/Python/2.6/site-packages']
SVH FLAG sys.argv[ 0 ] ./deleteme.py
SVH FLAG sys.argv[ 1 ] –d
SVH FLAG sys.argv[ 2 ] /Library/Python/2.6/site-packages

输出第一行的那个时髦字符串似乎真的搞乱了像 optparse 这样的东西,它看不到我的破折号。

我需要告诉系统什么东西才能给我一个正常的argv吗?

提前致谢!

最佳答案

不知何故,您输入的不是连字符,而是实际的破折号字符(选项 -),Unicode 8211,其 UTF-8 表示形式是三字节字符串 \xe2\x80\x93。我们总是将命令行选项前面的字符称为“破折号”,但它实际上是一个连字符!

关于python - osx python - 如何解码 sys.argv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com