亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 glob 或 os.walk() 忽略特定目錄中的文件

使用 glob 或 os.walk() 忽略特定目錄中的文件

呼啦一陣風 2021-05-30 11:02:22
我想排除目錄“dir3_txt”,以便我只能files('.txt')從其他目錄中捕獲。我試圖排除如下所示的目錄,但無法弄清楚如何將所有具有 .txt 的文件作為 ext 其他文件,以便在dir3_txt下面使用它:for root, dirs, files in os.walk('.'):   print (root)   dirs[:] = [d for d in dirs if not d.startswith('dir3')]   for file in files:        print (os.path.join(root, file))我正在考慮 glob(從堆棧本身獲得),但不確定如何調整 glob 以使用它。for file in os.walk('.'):   for txt in glob(os.path.join(files[0], '*.txt')):       print(txt)我經歷了os.walk中的排除目錄,但是提供的解決方案對我沒有幫助,它僅說明跳過目錄也無濟于事,因為我需要從其他目錄中獲取文件,如果僅使用glob可以做到這一點更好?
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

一個簡單的解決方案就是對由os.walk以下方法返回的目錄路徑和文件進行字符串比較:


for root, dirs, files in os.walk('.'):

   if "/dir3_txt/" not in root:

       for file in files:

            if file.endswith(".txt"):

                print (os.path.join(root, file))


查看完整回答
反對 回復 2021-06-01
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

for root, dirs, files in os.walk('.'):

   print (root)

   dirs[:]= [d for d in dirs if d[:4]!='dir3']

   for file in files:

      if file[-4:]=='.txt':

        print (os.path.join(root, file))

我現在沒有任何系統可以測試這一點,因此,如果有任何問題,請發表評論。


編輯:


現在,它僅檢測“ .txt”文件。


查看完整回答
反對 回復 2021-06-01
  • 2 回答
  • 0 關注
  • 282 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號