gpt4 book ai didi

python - 使用 python 搜索一个文件的内容和第二个文件的内容

转载 作者:行者123 更新时间:2023-12-01 04:51:47 25 4
gpt4 key购买 nike

我有以下代码,它将输入文件 1 第一列的项目与输入文件 2 的内容进行比较:

导入操作系统

newfile2=[]
outfile=open("outFile.txt","w")
infile1=open("infile1.txt", "r")
infile2=open("infile2.txt","r")
for file1 in infile1:
#print file1
file1=str(file1).strip().split("\t")
print file1[0]
for file2 in infile2:
if file2 == file1[0]:
outfile.write(file2.replace(file2,file1[1]))
else:
outfile.write(file2)

输入文件1:

Modex_xxR_SL1344_3920   Modex_sseE_SL1344_3920
Modex_seA_hemN Modex_polA_SGR222_3950
Modex_GF2333_3962_SL1344_3966 Modex_ertd_wedS

输入文件2:

Sardes_xxR_SL1344_4567  
Modex_seA_hemN
MOdex_uui_gytI

由于输入文件 1 项目(第 1 列,第 2 行)与输入文件 2(第 2 行)中的项目匹配,因此输入文件 1 中的第 2 列项目将替换输出文件中的输入文件 2 项目,如下所示(所需输出):

Sardes_xxR_SL1344_4567  
Modex_polA_SGR222_3950
MOdex_uui_gytI

到目前为止,我的代码仅输出输入文件 1 中的项目。有人可以帮助修改此代码吗?谢谢

最佳答案

看起来您有一个 tsv 文件,所以让我们继续处理它。我们将构建一个 tsv 阅读器 csv.reader(fileobj, delimiter="\t") ,它将迭代 infile1 并从中构建翻译字典。字典每行将具有第一列的键和第二列的值。

然后使用 dict.get 我们可以翻译 infile2 中的行(如果它存在于我们的翻译字典中),或者如果没有可用的翻译,则只编写该行本身。

import csv

with open("infile1.txt", 'r') as infile1,\
open('infile2.txt', 'r') as infile2,\
open('outfile.txt', 'w') as outfile:
trans_dict = dict(csv.reader(infile1, delimiter="\t"))

for line in infile2:
outfile.write(trans_dict.get(line.strip(),line.strip()) + "\n")

结果:

# contents of outfile.txt
Sardes_xxR_SL1344_4567
Modex_polA_SGR222_3950
MOdex_uui_gytI

编辑根据您的评论:

import csv

with open("infile1.txt", 'r') as infile1:
# build our translation dict
trans_dict = dict(csv.reader(infile1, delimiter="\t"))

with open("infile2.txt", 'r') as infile2,\
open("outfile.txt", 'w') as outfile:
# open the file to translate and our output file
reader = csv.reader(infile2, delimiter="\t")
# treat our file to translate like a tsv file instead of flat text
for line in reader:
outfile.write("\t".join([trans_dict.get(col, col) for col in line] + "\n"))
# map each column from trans_dict, writing the whole row
# back re-tab-delimited with a trailing newline

关于python - 使用 python 搜索一个文件的内容和第二个文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com