2014-12-01 112 views
0

使用python,我試圖找到/ sys中的所有文件並匹配某個文件。我遇到的問題是沒有找到所有文件。這不是一個訪問問題。我知道Python可以讀取和寫入文件,我已經使用file.open("file_path","w")file.write()手動測試過。我只是想知道是否有一些技巧來查找文件,我在這裏失蹤:在一個目錄中找到'all'文件,並非找到所有文件

import os,re 

for roots,dirs,files in os.walk('/sys'): 
    match=re.search(r'\S+/rq_affinity',roots) 
    if match: 
    print(match.group()) 

我已經嘗試過寫的用os.walk()到一個文件,然後使用外殼和grep看發現每一個文件如果我正在查找的文件存在,那麼問題不在於匹配。


固定搜索:

import os,re 

for roots,dirs,files in os.walk('/sys'): 
    for file in files: 
    match=re.search(r'\S+/rq_affinity',os.path.join(roots,file)) 
    if match: 
     print(match.group()) 

回答

2

rq_affinity是一個文件,不是嗎?你爲什麼會在roots那裏得到?

此外,/sys/dev/block下的條目是符號鏈接,因此您需要告知os.walk以跟蹤followlinks=True

+0

這讓我有點進一步,但我仍然無法找到像(/ sys/devices/virtual/block/loop0/queue)這樣的測試目錄中的所有文件。編輯:Nvm,我知道了,忘了看看「文件」列表。謝啦。 – jan 2014-12-01 20:56:25

相關問題