Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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
osx python-如何解码sys.argv?_Python_Macos - Fatal编程技术网

osx python-如何解码sys.argv?

osx python-如何解码sys.argv?,python,macos,Python,Macos,我甚至不认为我在使用时髦的角色——只是想通过a“-d”,但我的破折号似乎被吞没了。如果我只打印sys.argv[1],看起来还可以,但是如果我打印整个列表sys.argv,我可以看到时髦的字符而不是破折号。 Mac OSX 10.6.8 Python 2.6.1 #!/usr/bin/env python import sys if __name__ == "__main__": try: print "SVH FLAG sys.argv ",sys.argv

我甚至不认为我在使用时髦的角色——只是想通过a“-d”,但我的破折号似乎被吞没了。如果我只打印sys.argv[1],看起来还可以,但是如果我打印整个列表sys.argv,我可以看到时髦的字符而不是破折号。 Mac OSX 10.6.8 Python 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
输出的第一行上那个时髦的字符串似乎真的弄乱了像optpass这样的东西,它看不到我的破折号

有什么我需要告诉sys给我一个正常的argv吗


提前谢谢

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

你在复制粘贴这个吗?我刚接了前两个破折号

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

python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> '–'
'\xe2\x80\x93'
>>> '-'
'-'
>>> 

这是来自word文档或pdf还是其他什么?重新键入它,您应该会很好。

如何键入该破折号?从MS Office复制并粘贴?非常感谢!就这样。我从一个网页上剪切并粘贴了我的-d/路径,该网页必须具有选项-。那会教我剪切和粘贴。。。