txtファイルを繰り返し処理するコードを作成しようとしています。ループ(python)でnext()を使用して次の行を取得できません
テキストファイルはそうのようになります。
mimi
passwordmimi
mimi johnson
somejob
joji
passwordjoji
jojo
somejob
john
passwordjohn
jonathan
somejob
....
のように。このテキストファイルには、基本的にユーザー情報(ログイン用)が含まれています。私はみんなのユーザー名のプリントアウトとその本名(例:mimiとmimi johnson。)とそれらのものだけを作る必要があります。私は(この例では:譲二)をプリントアウトするために、現在のユーザーの情報を望んでいないここ
を私のコードです:
username="joji"
file=open("username.txt","r")
x=file.readlines()
x=[item.rstrip('\n') for item in x]
x=iter(x)
for line in x:
if line==username:
next(x,None)
next(x,None)
next(x,None)
else:
print line + " username" ****username should print out. ex:mimi or john
next(x,None)
print line +" real name ****real name should print out. ex: mimi johnson or jonathan
何らかの理由で、私はこのプログラムを実行すると、私は2番目をプリントアウトするとき* ***私は、それはユーザー名の2回を出力します。 (その例:
mimi username
mimi real name
mimi johnson username
mimi johnson real name
john username
john real name
jonathan username
jonathan real name
....
理由です、それは、誰かが私を助けることができれば、私はパイソンを得るいけない、本当に感謝されると思います
mimi username
mimi johnson real name
john username
jonathan realname
...
をプリントアウトする必要があり イムも、他に開いています?。 。この
EDITを行うための提案:::私は、これは結果で示唆変化を作ってみました:コードの
新しいブロック:
else:
print line + "username"
line =next(x,None)
print line
これは新しい結果である:
mimi username
passmimi real name
mimi johnson username
somejob real name
john username
passjohn real name
jonathan username
somejob real name(***im assuming this one is from john's job)
:/そのやっていないものをそのはず
へ 私は、このファイル解析する正規表現を使用することをお勧めします
'next()'を呼び出すと、 'line'の値は変更されません。 –
それはありませんか?それでは、何が最善の方法だろうか。 – harekuin
その場合、 'next'の戻り値を取得する必要があると思います。例えば'line = next(x)' –