こんにちは、特定の構造に関する異なる情報をそれぞれ含む 2 つのテキスト ファイルがあります。構造は、両方のファイルで ID 番号によって識別されます。私がやりたいことは、最初のファイルを読み込み、条件を満たさないデータ行をスキップすることです。次に、同じ ID 番号を持たない 2 番目のファイルの行をスキップし、他の行を処理します。ネストされた for ループを使用して実行しようとしましたが、2 つの別個の関数としても実行しましたが、どちらの試みもうまくいきませんでした。以下のように1つのループを使用してそれを完了しようとしていますが、このエラーが発生します
UnboundLocalError: local variable 'linel' referenced before assignment
これがコードです。私
F = 'file1.txt'
Fl = 'file2.txt'
X = [] # Creats Data Lists
M = []
Id1 = []
Id2 = []
LC = 10
N = 11
fl = open(Fl)
fl.readline()
nlinesl = islice(fl,N)
f = open(F) #Opens file
f.readline() # Strips Header
nlines = islice(f, N) #slices file to only read N lines
for line in nlines and linel in nlinesl:
if line !='':
linel = linel.strip()
linel = linel.replace('\t','')
columnsl = linel.split()
lum = float(columnsl[1])
if lum != LC:
continue
id1 = int(columnsl[0])
Id1.append(id1)
if line !='':
line = line.strip()
line = line.replace('\t','')
columns = line.split()
id2 = int(columns[1])
Id2.append(id2)
if Id != Id2:
continue
x = columns[2] # assigns variable to columns
X.append(x)
print(X)
これが私がしたいことの例です 2つのファイル
file1= 1 1 1 1 file2 = 1 1 1 1
2 5 1 1 1 2 1 1
2 3 4 4 1 1 1 1
Lc = 5
Xa = 1
したがって、file1 の 2 行目だけが残ります。つまり、file2 の 2 行目だけが処理されます。これは、同じ ID を持っているためです。私のファイルでは、IDは
id = columns[0] for file1
と
id = columns[1] for file2
前もって感謝します