私はPythonを学び、文字列関数を掘り下げようとしています。簡単な例として、私はこれを書きました
# example line
# username:*:231:-2:gecos field:/home/dir:/usr/bin/false
FILENAME = "/etc/passwd"
filehandle = open(FILENAME, 'r')
lines = filehandle.readlines()
for line in lines:
line = line.rstrip()
fields = line.split(':')
print fields[0]
この例は毎回機能し、ユーザー名を教えてくれます。リストの最初のフィールド。
これも[0:6]で機能し、すべてのフィールドを出力します。[:1]はユーザー名も出力します。[-1]は最後のフィールドも出力します。
問題は、[1]、[-2]、[2]などがこのエラーになることです。
ファイル"splits.py"、16行目、印刷フィールド[-2] IndexError:リストインデックスが範囲外です
私はここで何か間違ったことをしていますか?ばかげていると思いますが、私が見ている例では、[1]、[2]などができると言っています。
/ etc / passwdであり、[0]と[-1]が機能するため、入力が混乱することはないと思います。
どうもありがとう。