0

私はpythonが初めてで、2つの.txtから抽出したデータを一致させようとしています。各ファイルの各行の最初の要素が各ファイルの各行の最初の要素と一致する場合、出力が得られるはずですその情報をExcelシートに書き込みます。これまでのところ、これは私が得たものですが、ブロックされているので、助けていただければ幸いです。forループを使用して反復するだけなので、2つのファイルを比較して、一致する場合はforループなしで書き込むことができるようにする方法がわからない

import xlwt
c1=-1
c2=0

file1=open('/Users/whatever.txt','r')
file2=open('/Users/whatever2.txt','r')

style0=xlwt.easyxf('font:name Times New Roman,colour black,bold on')
wb=xlwt.Workbook()

ws=wb.add_sheet('x',cell_overwrite_ok=True)

ws2=wb.add_sheet('y',cell_overwrite_ok=True)
row=0
row2=0

for lineA in file1:

    split=lineA.split('\t')
    split.pop(5)
    split.pop(5)
    split.pop(6)
    split.pop(6)
    split.pop(6)
    split.pop(6)
    split.pop(7)
    split.pop(7)
    split.pop(7)
    if '123\n'in split:
        continue
    elif '567\n' in split:
        continue
    elif '8910\n' in split:
        continue
    else:
        ws.write(0,0,euk,style0)
        ws.write(row,0,str(c1),style0)
        ws.write(row,1,split[0],style0)
        ws.write(row,2,split[1],style0)
        ws.write(row,3,split[2],style0)
        ws.write(row,4,split[3],style0)
        ws.write(row,5,split[4],style0)
        ws.write(row,6,split[5],style0)
        ws.write(row,7,split[6],style0)
        ws.write(row,8,split[7],style0)

        row+=1

for lineB in file2:

    split1=lineB.split('\t')
    split1.pop(5)
    split1.pop(5)
    split1.pop(5)
    split1.pop(5)
    split1.pop(5)
    split1.pop(5)
    split1.pop(5)
    split1.pop(-2)
    split1.pop(-2)
    split1.pop(-2)


  if '654\n' in split1:

        ws2.write(0,0,prok,style0)
        ws2.write(row2,0,str(c2),style0)
        ws2.write(row2,1,split1[0],style0)
        ws2.write(row2,2,split1[1],style0)
        ws2.write(row2,3,split1[2],style0)
        ws2.write(row2,4,split1[3],style0)
        ws2.write(row2,5,split1[4],style0)
        ws2.write(row2,6,split1[5],style0)
        ws2.write(row2,7,split1[6],style0)
        #print(split1)
        c2=c2+1
        row2+=1

wb.save('Hello.xls')
4

1 に答える 1

0

私はあなたがやろうとしていることに従うと思います。各行の最初の要素を比較することはそれほど難しくありません。次のことを試してください。

file1=open('/Users/whatever.txt','r')
file2=open('/Users/whatever2.txt','r')

for line in file1.readlines():
    # Split the line by tab spaces
    split_line = line.split('/t')
    # get the first element
    l1 = split_line[0]
    # Split the first line of file2 by tab spaces
    split_line2 = file2.readline().split("/t")
    # Get the first element of the file2 split line
    l2 = split_line2[0]

    # Check if they match
    if l1 == l2:
        # If they match, add it to your file
        # Add your write code here
    # If they don't match, nothing will be written

以下は同じことを行うはずですが、より簡潔です。

for line in file1.readlines():
    if line.split("/t")[0] == file2.readline().split("/t")[0]:
        # Add your write code here
于 2012-07-19T17:45:47.623 に答える