我试图打印出以first
开头的文件名。
这就是我所做的:
导入操作系统 导入重新
path = '/my_path'
for root, dirs, files in os.walk(path):
for file in files:
match_pattern = re.search(r'^first', file)
print match_pattern.group()
但是,这是我在运行程序时得到的:
first
Traceback (most recent call last):
File "test.py", line 10, in <module>
print match_pattern.group()
AttributeError: 'NoneType' object has no attribute 'group'
我想打印出以first
开头的文件名,例如:
first-xyz
first abc
我做错了什么?
答案 0 :(得分:2)
如果RegEx不匹配,则返回None
,因此您需要像这样修复:
match_pattern = re.search(r'^first', file)
if match_pattern:
print match_pattern.group()
另请注意,在Python 2中,file
是内置函数(别名为open
),您不应重新定义。
答案 1 :(得分:1)
您的搜索返回无。试试这个:
path = '/my_path'
for file in os.listdir(path):
if file.startswith("first"):
print file + '\n'
答案 2 :(得分:0)
如果没有匹配(see python.org documentation for re.search() here),Python的正则表达式方法re.search()
和re.match()
都会返回None
。在尝试使用match_pattern.group()
访问结果信息之前,您需要测试结果是否为“无”。