2011-04-26 69 views

回答

18

事情是這樣的:

import os 
directory = os.path.join("c:\\","path") 
for root,dirs,files in os.walk(directory): 
    for file in files: 
     if file.endswith(".log") or file.endswith(".txt"): 
      f=open(file, 'r') 
      for line in f: 
       if userstring in line: 
       print "file: " + os.path.join(root,file)    
       break 
      f.close() 
+0

在windows中,walk方法就像os.walk('c:/ Python27')或者其他的東西?謝謝! – suffa 2011-04-26 14:50:41

+0

@ user706808請參閱我的編輯。 – ghostdog74 2011-04-26 14:54:33

+0

請注意'str.endswith(suffix [,start [,end]])'可以爲後綴取一個元組。過多的「或」比較會導致麻煩。 – 2016-10-18 19:29:34

2

做到這一點在Python?否則,只需grep -l "string" *.txt *.log將工作。

+0

lbrahim是的,我需要在Python中做到這一點。謝謝(你的)信息! – suffa 2011-04-26 14:52:12

+2

@Andre Caron看起來像一個合理的問題......當你聽到文字時你一定很明亮! ...你是誰來確定它聽起來像什麼?小夥子們,我很久以前就讀完了......這是一種自我利益的愛好。沒有什麼更好的與你的時間做,然後帶來消極。像你這樣的人...... – suffa 2011-04-26 15:23:53

3

他要了一個扁平的readdir,而不是遞歸文件樹的步行路程。 os.listdir()完成這項工作。

相關問題