2012-01-19 17 views
1

Я не думаю, что я даже нахожусь в стиле фанк-персонажей - просто пытаюсь передать «-d», но мой тире кажется, что он ругается. Если я просто печатаю sys.argv [1], это выглядит нормально, но если я распечатаю весь список sys.argv, я могу увидеть фанки-символы вместо моей тире. Mac OSX 10.6.8 Python 2.6.1osx python - как декодировать sys.argv?

#!/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, которая не видит мой тире.

Есть ли что-то, что мне нужно, чтобы рассказать sys, чтобы дать мне нормальный вид argv?

Заранее благодарен!

+0

Как вы набираете эту тире? – geoffspear

ответ

2

Как-то вы не набираете дефис, а фактический символ штриха (опция -), Unicode 8211, чье представление UTF-8 представляет собой трехбайтную строку \xe2\x80\x93. Мы всегда ссылаемся на символ, который предшествует параметрам командной строки как «тире», но это действительно дефис!

+0

Скопируйте и вставьте из MS Office? – dan04

+0

Большое вам спасибо! Вот и все. Я вырезал и-вставил мой -d/путь с веб-страницы, и эта страница должна была иметь опцию -. Это научит меня вырезать-вставить ... –

1

Скопируете ли вы это вставку? Я просто взял первые две черточки от

Which gives me this when I call it with -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' 
>>> '-' 
'-' 
>>> 

ли это пришло от слова документ или PDF или что-то? Повторите его, и все будет хорошо.

Смежные вопросы