On 13/04/15 13:29, [email protected] wrote:
Input Read Pairs: 2127436 Both Surviving: 1795091 (84.38%) Forward Only
Surviving: 17315 (0.81%) Reverse Only Surviving: 6413 (0.30%) Dropped: 308617
(14.51%)
Its not clear where the tabs are in this line.
But if they are after the numbers, like so:
Input Read Pairs: 2127436 \t
Both Surviving: 1795091 (84.38%) \t
Forward Only Surviving: 17315 (0.81%) \t
Reverse Only Surviving: 6413 (0.30%) \t
Dropped: 308617 (14.51%)
Then you may not need to use regular expressions.
Simply split by tab then split by :
And if the 'number' contains parens split again by space
with open("255.trim.log","r") as p:
for i in p:
lines= i.strip("\t")
lines is a bad name here since its only a single line. In fact I'd lose
the 'i' variable and just use
for line in p:
if lines.startswith("Input"):
tp = lines.split("\t")
print re.findall("Input\d",str(tp))
Input is not followed by a number. You need a more powerful pattern.
Which is why I recommend trying to solve it as far as possible
without using regex.
So I started to find ":" from the row:
with open("255.trim.log","r") as p:
for i in p:
lines= i.strip("\t")
if lines.startswith("Input"):
tp = lines.split("\t")
print re.findall(":",str(tp[0]))
Does finding the colons really help much?
Or at least, does it help any more than splitting by colon would?
And I'm able to find, but when I try to take the number using \d not work.
Someone can explain why?
Because your pattern doesn't match the string.
HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor