【发布时间】:2021-11-16 14:41:36
【问题描述】:
我想完成这个特定的任务,我有 2 个文件,第一个包含电子邮件和凭据:
xavier.desprez@william.com:Xavier
xavier.locqueneux@william.com:vocojydu
xaviere.chevry@pepe.com:voluzigy
Xavier.Therin@william.com:Pussycat5
xiomara.rivera@william.com:xrhj1971
xiomara.rivera@william-honduras.william.com:xrhj1971
第二个,带有电子邮件和位置:
xavier.desprez@william.com:BOSNIA
xaviere.chevry@pepe.com:ROMANIA
我希望,每当在第二个文件中找到来自第一个文件的电子邮件时,该行将由 EMAIL:CREDENTIAL:LOCATION 替换,当未找到时,它最终为: EMAIL:CREDENTIAL:BLANK
所以最终的文件必须是这样的:
xavier.desprez@william.com:Xavier:BOSNIA
xavier.locqueneux@william.com:vocojydu:BLANK
xaviere.chevry@pepe.com:voluzigy:ROMANIA
Xavier.Therin@william.com:Pussycat5:BLANK
xiomara.rivera@william.com:xrhj1971:BLANK
xiomara.rivera@william-honduras.william.com:xrhj1971:BLANK
我在 python 中做了几次尝试,但写它甚至不值得,因为我不是很接近解决方案。
问候!
编辑:
这是我尝试过的:
import os
import sys
with open("test.txt", "r") as a_file:
for line_a in a_file:
stripped_email_a = line_a.strip().split(':')[0]
with open("location.txt", "r") as b_file:
for line_b in b_file:
stripped_email_b = line_b.strip().split(':')[0]
location = line_b.strip().split(':')[1]
if stripped_email_a == stripped_email_b:
a = line_a + ":" + location
print(a.replace("\n",""))
else:
b = line_a + ":BLANK"
print (b.replace("\n",""))
这是我得到的结果:
xavier.desprez@william.com:Xavier:BOSNIA
xavier.desprez@william.com:Xavier:BLANK
xaviere.chevry@pepe.com:voluzigy:BLANK
xaviere.chevry@pepe.com:voluzigy:ROMANIA
xavier.locqueneux@william.com:vocojydu:BLANK
xavier.locqueneux@william.com:vocojydu:BLANK
Xavier.Therin@william.com:Pussycat5:BLANK
Xavier.Therin@william.com:Pussycat5:BLANK
xiomara.rivera@william.com:xrhj1971:BLANK
xiomara.rivera@william.com:xrhj1971:BLANK
xiomara.rivera@william-honduras.william.com:xrhj1971:BLANK
xiomara.rivera@william-honduras.william.com:xrhj1971:BLANK
我非常接近,但我得到了重复;)
问候
【问题讨论】:
-
我编辑了我的问题,这就是我尝试过的
标签: python regex data-processing