On 3/6/2016 11:38 PM, Fillmore wrote:
Hi, I'm trying to move away from Perl and go to Python.
Regex seems to bethe hardest challenge so far.
Perl:
while (<HEADERFILE>) {
if (/(\d+)\t(.+)$/) {
print $1." - ". $2."\n";
}
}
into python
pattern = re.compile(r"(\d+)\t(.+)$")
with open(fields_Indexfile,mode="rt",encoding='utf-8') as headerfile:
for line in headerfile:
#sys.stdout.write(line)
m = pattern.match(line)
print(m.group(0))
headerfile.close()
Delete this line. Files opened in a with statement are automatically
closed when exiting the block. This is a main motivator and use for the
with statement.
but I must be getting something fundamentally wrong because:
Traceback (most recent call last):
File "./slicer.py", line 30, in <module>
print(m.group(0))
AttributeError: 'NoneType' object has no attribute 'group'
why is 'm' a None?
Python has a wonderful interactive help facility. Learn to use it.
>>> import re
>>> help(re.match)
Help on function match in module re:
match(pattern, string, flags=0)
Try to apply the pattern at the start of the string, returning
a match object, or None if no match was found.
>>>
Add 'if m is not None:' before accessing m.group.
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list