1

次のデータを含む新しいファイル名があります。

1111
2012-5-12
new
p0
2222
2012-10-12
old
p1
3333
2012-15-12
new
p0
4444
2012-5-11
new
p1
5555
2011-5-12
old
p0

このファイルでは、各 ID には、ID、日付、ステータス、および値 (1111,2012-5-12,new,p0) などのデータが含まれています。このファイルでは、ステータス値を持つすべての ID のデータを出力する必要があります。 「新しい」..そして私の出力は次のようになります:

1111
2012-5-12
new
p0
3333
2012-15-12
new
p0
4444
2012-5-11
new
p1

私は次のコードで試しました:

f1 = open('new','r')
output = open('new1','w')
lines = f1.readlines()
n =0
for i, line in enumerate(lines):       
    if n > 3:
        output.close()
        file1=open('new1','r')
        file2=open('new2','w')
        lines= file1.readlines()
        status = lines[2].strip()
        if status == 'new':
         for line in lines:
                file2.write(line)

        output = open('new1','w')       
        output.write(line)
        n = 1

    else:
        output.write(line)
        n = n + 1

new2 と new1 には次の出力があります: (new2)=======

p0
2012-5-11
new
p1
0 

(new1)===========

p1
2011-5-12
old
p0  

プログラムは最初の 4 行を取得し、それを new1 に書き込みます。したがって、status == "new" が見つかった場合は検索し、4 行すべてを new2 に書き込みます。

問題: new2 で正しいデータを取得していません。次のようなデータが含まれている必要があります。

1111
2012-5-12
new
p0
3333
2012-15-12
new
p0
4444
2012-5-11
new
p1
4

1 に答える 1