我有一個Python腳本,我試圖過濾一些文本文件並將它們與另一個文本文件進行比較,但是我正在努力尋找解決方案。通過Python中的文本列表中的值進行過濾
below | 1
above | 2
above | 3
above | 4
above | 5
below | 6
below | 7
below | 8
below | 9
below | 10
below | 11
below | 12
above | 13
below | 14
below | 15
below | 16
below | 17
below | 18
below | 19
below | 20
below | 21
...
我有這個文件列出了視頻幀以及它們是否高於或低於定義的閾值。
此外,我有一個'以上'的閾值框架,以及一個用戶定義的值標記(x,y或z)給每個。不幸的是,這個列表中的數字並不對應於上面或下面的初始幀號,而只是一個編號列表。
y | 1
x | 2
x | 3
y | 4
z | 5
z | 6
y | 7
z | 8
y | 9
y | 10
x | 11
x | 12
y | 13
x | 14
x | 15
x | 16
x | 17
x | 18
y | 19
x | 20
z | 21
我想結合這兩種使得上述幀的X,Y或Z值替換「上面」標籤中的其他腳本,例如:
below | 1
y | 2
x | 3
x | 4
y | 5
below | 6
below | 7
below | 8
below | 9
below | 10
below | 11
below | 12
z | 13
below | 14
below | 15
below | 16
below | 17
below | 18
below | 19
below | 20
below | 21
不過,我可以我不知道如何遍歷列表來實現這一目標。我應該將值存儲在字典中並迭代這些值嗎?任何幫助將非常感激。我已經使用了一些for循環和開放的語句來嘗試它試圖,但我無法通過它讓我的頭一輪如何遍歷:
with open((selectedvideostring + 'combinedfiles.txt'), 'w') as combinedfile:
with open((selectedvideostring + 'aboveorbelow.txt'), 'r') as aboveorbelowfile:
for line in aboveorbelowfile:
if 'above' in line:
with open((selectedvideostring + 'xyzfile.txt'), 'r') as xyzfile:
for line in xyzfile:
if 'x' in line:
combinedfile.write("x" + '|' + str(int(cap.get(1))))
elif 'y' in line:
combinedfile.write("y" + '|' + str(int(cap.get(1))))
if 'z' in line:
combinedfile.write("z" + '|' + str(int(cap.get(1))))
elif 'below' in line:
combinedfile.write("below" + '|' + str(int(cap.get(1))))
謝謝!
什麼你嘗試了嗎? – Netwave
請將這些文件的_content_粘貼到您的問題中,以便我們不必重新輸入所有內容以測試可能的解決方案。 –
現在就做,致歉! – KittenMittons