コマンドライン引数がこちらの辞書型のキーになる理由を教えてください。


こんにちは。Python初心者です。

Pythonの教材を勉強していて分からない分野に直面しました。  
アル・スウェイガート著の『退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング 』のP146にあるコードからです。

下記のコードの13行目のaccount = sys.argv[1]のことで質問があります。  
16行目のコードであるpyperclip.copy(PASSWORDS[account])  
を読む限り、辞書PASSWORDSのキーにコマンドライン引数が代入されたaccountが  
指定されています。

試しに、args[0]が具体的にどのようなものかを調べてみると、このように  
出力されます。

[code]

    print(args[1])
    
[/code]

出力結果

[code]

    C:/Users/PycharmProjects/sampleproject2/pw.py
    
[/code]

このように、現在のスクリプトのディレクトリが出力されます。  
そして、疑問になりこちらで質問させていただきます。

**現在のディレクトリをaccountに代入して、そして、辞書PASSWORDS  
のキーに使う理由を教えてください。**

実際のコードはこちらです。

[code]

    PASSWORDS = {'email': 'f;ajljgodjdasofjd',
                 'blog': 'jdfjaksdasdkasasdd',
                 'luggage': '12345'
    }
    
    import sys
    import pyperclip
    if len(sys.argv) < 2:
        print('使い方: python pw.py[アカウント名]')
        print('パスワードをクリップボードにコピーします')
        sys.exit()
    
    account = sys.argv[1]
    
    if account in PASSWORDS:
        pyperclip.copy(PASSWORDS[account])
        print(account + 'のパスワードをクリップボードにコピーしました')
    else:
        print(account + 'というアカウント名はありません')
    
[/code]



[code]

    account = sys.argv[0]
    
[/code]

ではなくて、

[code]

    account = sys.argv[1]
    
[/code]

ではないでしょうか。

[code]

    python pw.py [アカウント名]
    
[/code]

として Python スクリプト名に続けて「スペースを挟んで」アカウント名をコマンドオプションとして与えて実行すれば、それが `sys.argv[1]`
として拾われます。



[code]

    account = sys.argv[0]
    
[/code]

ではなくて、

[code]

    account = sys.argv[1]
    
[/code]

ではないでしょうか。

[code]

    python pw.py [アカウント名]
    
[/code]

として Python スクリプト名に続けて「スペースを挟んで」アカウント名をコマンドオプションとして与えて実行すれば、それが `sys.argv[1]`
として拾われます。

