On 13/04/15 13:29, jarod...@libero.it 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 - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor