[英]Multiple queries for multiple input files
我已經開發了一個代碼來在幾個 input.txt 文件中“捕獲”那些帶有特定查詢的行,但現在我想找到幾個查詢。 例如在輸入文件中“查找:AA 或 CD 或 BC”。
我還沒有找到任何方法。 任何建議都會很有幫助!
輸入文件
AA
AB
AC
CD
CD
AA
BC
Output 文件
AA
CD
CD
AA
BC
這是我現在使用的代碼:
import fileinput
from collections import deque
output_file = 'output.txt'
buscado = 'AA'
contexto = deque([], 4) # for keeping the last 4 lines
with open(output_file, "w") as f_out:
for line in fileinput.input(files=["input.txt", "input2.txt"]):
contexto.append(line)
if len(contexto) < 4:
continue
if buscado in contexto[1]:
f_out.writelines(contexto)
你可以這樣做:
output_list = []
with open('data.txt', 'rt') as f:
data = f.readlines()
for line in data:
if line.strip('\n') in ("AA", "CD", "BC"):
output_list.append(line.strip('\n'))
print(output_list)
Output:
['AA', 'CD', 'CD', 'AA', 'BC']
[編輯] 使用文件輸入
如果你想使用 fileinput 模塊來解析多個文件並知道在每個文件中找到了哪些鍵,你可以這樣嘗試:
import fileinput
with fileinput.FileInput(files=('data.txt', 'data1.txt'), mode='r') as input:
for idx, line in enumerate(input):
if input.isfirstline() == True:
# Indicate the file name
print(f'Reading file : {input.filename()}')
if line.strip('\n') in ("AA", "CD", "BC"):
print(line.strip('\n'))
data.txt的內容
AA
AB
AC
CD
CD
AA
BC
和
data1.txt的內容
AA
AB
AC
CD
CD
AA
BC
AA
BB
DD
FF
BC
BC
Output:
Reading file : data.txt
AA
CD
CD
AA
BC
Reading file : data1.txt
AA
CD
CD
AA
BC
AA
BC
BC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.