簡體   English   中英

AttributeError:'NoneType'對象沒有屬性'group'

[英]AttributeError: 'NoneType' object has no attribute 'group'

我必須吸收一些數據。 腳本已經存在,但需要針對新數據進行調整。

所以有一行:

head = fn.replace(re.search(r'\d{8}_\d{4}', fn).group(),'')

我在哪里得到錯誤: AttributeError: 'NoneType' object has no attribute 'group'

要解決此問題,我需要了解此行實際發生的情況。
而且我不了解“替換”之后要做什么。 有人可以解釋一下這是怎么回事嗎? r'\\d{8}_\\d{4}'是什么意思?

re.search正在查找您的正則表達式模式的匹配項,並返回一個正則表達式匹配對象。 如果沒有匹配項,則返回None。 因此,您無法在None上調用.group()

In [38]: re.search(r'921', mystr)
Out[38]: <_sre.SRE_Match object; span=(23, 26), match='921'>

In [39]: mystr
Out[39]: "b'la lala 135\\r\\n 1039 921\\r\\n'"

In [40]: re.search(r'921', mystr)
Out[40]: <_sre.SRE_Match object; span=(23, 26), match='921'>

In [41]: re.search(r'potatoes', mystr)

SRE_Match對象具有group()方法,該方法獲取匹配的字符串值。

In [42]: re.search(r'921', mystr).group()
Out[42]: '921'

因此,如果您仍然不清楚它在做什么,它會找到與re.search()提供的正則表達式模式匹配的字符串fn ,並通過將其替換為''將其從字符串fn刪除。 在這種情況下,它將找到fn中具有8位數字( \\d{8} )和下划線然后再有4位數字( \\d{4} )的匹配項。 所以看起來像12345678_1234字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM