1. ホーム
  2. python

[解決済み] sys.argv[1], IndexError: list index out of range [duplicate].

2022-02-14 12:59:39

質問

Pythonのコードの以下の部分に問題があります。

# Open/Create the output file
with open(sys.argv[1] + '/Concatenated.csv', 'w+') as outfile:

    try:
        with open(sys.argv[1] + '/MatrixHeader.csv') as headerfile:
            for line in headerfile:
                outfile.write(line + '\n')
    except:
        print 'No Header File'

具体的には以下のようなエラーになります。

Traceback (most recent call last): File "ConcatenateFiles.py", line 12, in <module> with open(sys.argv[1] + 'Concatenated.csv', 'w+') as outfile:
IndexError: list index out of range

ちょっと調べてみたところ、どうやら sys.argv スクリプトを実行するときにコマンドラインで引数が必要になるかもしれませんが、何を追加すればいいのか、何が問題なのかがわかりません。このサイトでも検索してみましたが、私が見つけたすべての解決策は、コメントがないか、私のもののようにopen関数を含まないかのどちらかです。

よろしくお願いします。

解決方法は?

sys.argv は、スクリプトを実行する際のコマンドラインオプションを表します。

sys.argv[0] は実行中のスクリプトの名前です。 すべての追加オプションは sys.argv[1:] .

を使用しているファイルを開こうとしています。 sys.argv[1] (最初の引数)をディレクトリと思われるものにします。

このような感じで実行してみてください。

python ConcatenateFiles.py /tmp