2012-01-19 3 views
1

私はファンキーなキャラクターを使っているとは思っていません。単に "-d"を渡そうとしていますが、ダッシュは混乱しているようです。私がsys.argv [1]を印刷しても大丈夫ですが、リストsys.argv全体を印刷するとダッシュの代わりにファンキーな文字が見えます。 マックOSX私は-dとそれを呼び出すときに私にこれを与え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" 

: ./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

何とかハイフンを入力するのではなく、UTF-8表現が3バイト文字列\xe2\x80\x93である実際のダッシュ文字(オプション - )、Unicode 8211を入力します。コマンドラインオプションに先行する文字を常に「ダッシュ」と呼んでいますが、実際はハイフンです。

+0

MS Officeからコピーアンドペーストするには? – dan04

+0

ありがとう!それはそれだった。私はウェブページから私の-d /パスをカット&ペーストしました。そのページにはオプションがあったに違いありません。それは私にカットアンドペーストを教えてくれるでしょう... –

1

貼り付けをコピーしていますか?これは、Word文書やPDFか何かから来た私はちょうど

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' 
>>> '-' 
'-' 
>>> 

から最初の2つのダッシュを取りましたか?もう一度やり直してください。

関連する問題