On 2012-05-09 15:22, BRAGA, Bruno wrote:
On Thursday, May 10, 2012, Afonso Duarte <adua...@itqb.unl.pt [1]>
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

true, I did not mention, but the entries in file A.txt only appear once in b.txt.


 - you need not add new line (n) in the print statement, unless you
want it to print a blank line between results

true

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...


exactly! but what I want is that plus the value that proceeds that line in the B.txt i.e.

Bbb
1234

Best

Afonso


 

Best

 

Afonso
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to