我正在嘗試這樣做:如果最後一列是1-5的負數,則將第二列和最後一列寫入文件「neg.txt」。如果最後一列是正數,則第二列和最後一列需要寫入「pos.txt」。執行後,我的兩個輸出文件都會變空。我不知道代碼有什麼問題,當我認爲如果聲明可以處理多個條件。我也嘗試過使用正則表達式,但它沒有工作,所以我儘可能簡單地查看哪些工作不正常。從最後一列的文件中分離列
輸入文件看起來是這樣的:
abandon odustati -2
abandons napusta -2
abandoned napusten -2
absentee odsutne -1
absentees odsutni -1
aboard na brodu 1
abducted otet -2
accepted prihvaceno 1
我的代碼是:
from urllib.request import urlopen
import re
pos=open('lek_pos.txt','w')
neg=open('lek_neg.txt','w')
allCondsAreOK1 = (parts[2]=='1' and parts[2]=='2' and
parts[2]=='3' and parts[2]=='4' and parts[2]=='5')
allCondsAreOK2 = (parts[2]=='-1' and parts[2]=='-2' and
parts[2]=='-3' and parts[2]=='-4' and parts[2]=='-5')
with open('leksicki_resursi.txt') as pos:
for line in pos:
parts=line.split() # split line into parts
if len(parts) > 1: # if at least 2 columns (parts)
if allCondsAreOK:
pos.write(parts[1]+parts[2])
elif allCondsAreOK2:
neg.write(parts[1]+parts[2])
else:
print("nothing matches")
我認爲你的條件應該使用或而不是AND如果零件是你的列 –
如果我在這兩種情況下使用OR而不是AND,那麼只有負數的'lek_neg.txt'如果已滿,但是對於正數仍然是空的 –
那是因爲你必須做內部的條件,而不是外部(不是在它之前) –