簡體   English   中英

多個輸入文件的多個查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM