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