嗨,我有兩個文本文件,每個文件都包含有關特定結構的不同信息。兩個文件中的結構由一個id號標識。我想要做的是在第一個文件中讀取並跳過不滿足條件的數據行。然後在第二個文件中有沒有相同ID號的行被跳過,其他處理過。我試圖使用嵌套for循環來做到這一點,我也嘗試了它作爲兩個單獨的函數,但都沒有嘗試工作。我現在試圖使用下面的一個循環來完成它,但得到這個錯誤閱讀並比較Python中的兩個文件
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)
這裏是我想發生 兩個文件
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
因此,只有文件1的第二行會生存下去,這意味着只有在文件2的第二行會是怎樣一個例子因爲它們具有相同的標識而被處理。在我的文件ID被
id = columns[0] for file1
和
id = columns[1] for file2
在此先感謝
你可以請標記導致錯誤的行,也可以公關懷着一個完整的追蹤......它會更容易找出問題。 – Levon
你需要壓縮你的雙迭代器:'對於行,zip中的linel(nlines,nlinesl):' –
@ K-Braffor它現在可以工作了,謝謝 – Surfcast23