第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

正則表達(dá)式和os.walk

正則表達(dá)式和os.walk

Qyouu 2021-05-14 18:09:16
我是python的新手,但學(xué)習(xí)速度很快。我正在嘗試將regex與os.walk一起使用,以忽略我不想處理的目錄。我了解您必須就地修改目錄,而不要?jiǎng)?chuàng)建新列表。我已經(jīng)嘗試了兩種方式。我沒有收到任何錯(cuò)誤,但它仍然遍歷所有目錄。排除全目錄名可以正常工作。我正在嘗試刪除名稱中帶有“ EXP”或“-”或“ 3.2”的所有目錄。這是一個(gè)我想忽略的示例3.2.2.150-20150424.195805_EXP_manuMain_outOfMemFix這就是我所擁有的:def runtest(filepath_udu: object) -> object:       k = 1    for root, dirs, files in os.walk(filepath_udu, topdown=True):        dirs[:] = [item for item in dirs                    if item not in ('1node','local','remote')]        dirs[:] = [dir for dir in dirs                    if re.search(r'\bEXP\b', dir) not in dirs \                   or re.search(r'\b3.2\b', dir) not in dirs \                   or re.search(r'\w+(?:- \w+)+', dir) not in dirs]    for file in files:        do something...我的第二個(gè)Dirs [:]被忽略了,我在做什么錯(cuò)?謝謝
查看完整描述

2 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

它不會(huì)被忽略,只是您的條件始終為真,因此您不會(huì)過濾掉任何內(nèi)容。


re.search如果找到某對(duì)象,則返回匹配對(duì)象,否則返回一個(gè)匹配對(duì)象None。無論哪種方式,都不會(huì)成為的元素dirs,因?yàn)閐irs它只是一個(gè)字符串列表。因此,您的所有測(cè)試始終都是正確的。


不必檢查搜索不在其中dirs,而只需檢查它是否不正確。(匹配對(duì)象始終是真實(shí)的,并且None始終是虛假的。)


另外,在解決此問題之后,我非常確定您希望將所有測(cè)試失敗的值保留在其中,但是您使用or而不是and,這意味著您將在所有測(cè)試失敗的值保留在其中。


所以:


dirs[:] = [dir for dir in dirs

           if not re.search(r'\bEXP\b', dir)

           and not re.search(r'\b3.2\b', dir) 

           and not re.search(r'\w+(?:-\w+)+', dir)]

或者,如果更容易理解(相反),而不是將所有值都保留在所有測(cè)試失敗的地方,而是將所有值保留在所有測(cè)試都不成立的地方:


dirs[:] = [dir for dir in dirs if not (

           re.search(r'\bEXP\b', dir) or

           re.search(r'\b3.2\b', dir) or

           re.search(r'\w+(?:-\w+)+', dir))]


查看完整回答
反對(duì) 回復(fù) 2021-05-18
  • 2 回答
  • 0 關(guān)注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)