[Tutor] Script to search in string of values from file A in file B

BRAGA, Bruno bruno.braga at gmail.com
Wed May 9 16:22:19 CEST 2012


On Thursday, May 10, 2012, Afonso Duarte <aduarte at itqb.unl.pt> wrote:
> Dear All,
>
>
>
> I’m new to Python and started to use it to search text strings in big
(>500Mb) txt files.
>
> I have a list on text file (e.g. A.txt) that I want to use as a key to
search another file (e.g. B.txt), organized in the following way:
>
>
>
> A.txt:
>
>
>
> Aaa
>
> Bbb
>
> Ccc
>
> Ddd
>
> .
>
> .
>
> .
>
>
>
> B.txt
>
>
>
> Bbb
>
> 1234
>
> Xxx
>
> 234
>
>
>
>
>
> I want to use A.txt to search in B.txt and have as output the original
search entry (e.g. Bbb) followed by the line that follows it in the B.txt
(e.g.  Bbb / 1234).
>
> I wrote the following script:
>
>
>
>
>
> object = open(B.txt', 'r')
>
> lista = open(A.txt', 'r')
>
> searches = lista.readlines()
>
> for line in object.readlines():
>
>      for word in searches:
>
>           if word in line:
>
>                print line+'\n'
>
>
>
>
>
>
>
> But from here I only get the searching entry and not the line afterwards,
I tried to google it but I got lost and didn’t manage to do it.
>
> Any ideas ? I guess that this is basic scripting but I just started .

Not sure I understood the question... But:
- are you trying to "grep" the text file? (simpler than programming in
python, IMO)
- if you have multiple matches of any of the keys from A file in a sungle
line of B file, the script above will print it multiple times
- you need not add new line (\n) in the print statement, unless you want it
to print a blank line between results

Based on the example you gave, the matching Bbb value in B and A are the
same, so actually line is being printed, but it is just the same as word...


>
>
>
> Best
>
>
>
> Afonso

-- 
Sent from Gmail Mobile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120510/21839adf/attachment.html>


More information about the Tutor mailing list