2017-01-13 18 views
1

ファイル内の文字列と、最初の列の最初の列とを比較したい ファイル内の文字列が最初の列の値と一致する場合この文字列を2番目の値に置き換えたい変更してテキストファイルに保存してください文字列で文字列を置換する

import numpy as np 
wb = openpyxl.load_workbook('D:\\example.xlsx') 

ws = wb.active 

v = "D:\\A2.txt" 
v = open(v).read() 
row = 1 
cell_addr = "A" + str(row) 
next_cell = "B" + str(row) 
while ws[cell_addr].value is not None: 

    # print(cell_addr, ws[cell_addr].value, type(ws[cell_addr].value)) 
    j=1 
    for i in v: 
     if i == ws[cell_addr].value: 
      v.replace(i, ws[next_cell].value) 
     else: 
       print (i) 
    with open('D:\\A2.txt', 'w') as f: 
     f.write(i)   

    row += 1 
    cell_addr = "A" + str(row) 
    next_cell = "B" + str(row) 
+0

だから問題またはエラーは何ですか? –

+0

vが(x、y、z)を持っている場合など、出力が正しく出力されないというエラーがある場合は、これらをExcelファイルと比較したいそれらのいずれかを拳の列で見つけて、それを2番目の列の値に置き換えます。配偶者yは拳の列にあります。私はそれを置きたいので、x、zはExcelファイルではありません。 x、Y1、zと変更を保存する必要があります。 – somah

答えて

0

このような感じですか?

import openpyxl 

xlsfile = 'example.xlsx' 
txtfile = 'A2.txt' 

with open(txtfile, 'r') as f: 
    v = f.read().split('\n') 

new_v = list(v) 
wb = openpyxl.load_workbook(xlsfile) 
ws = wb.active 
for cells in ws.rows: 
    val = cells[0].value 
    if val in v: 
     index = v.index(val) 
     new_v[index] = cells[1].value 

with open(txtfile, 'w') as f: 
    f.write('\n'.join(new_v)) 
+0

excleファイル – somah

+0

の2番目の列にある値を使用してテキストファイルのトークンを変更しないようにするコードを残してください申し訳ありません。このコードが失敗した場合の例を教えてください。 –

+0

txtfileにこのトークン(xyz)があり、xlsfileの値が第firset列[xfz]の第2列にある場合は、これらの値が[A B C]であるため、最初の呪文の各値とtxtfileの各トークンを比較します。 firest列に同じ文字列がある場合は、トークンを2番目の列の値に置き換えます。上記の例のように[x、z]が最初の列にある場合、それらを[AC]に置き換えて、最終出力は[A y C]のようになります。これを同じtxtfileに保存します – somah

関連する問題