2015-11-12 137 views
0

我想閱讀python中的HTML文件。 Normaly我不喜歡這樣(和它的作品):閱讀HTML(不同文件夾)文件

import codecs 
f = codecs.open("test.html",'r') 
print f.read() 

的問題是,我的HTML文件不是都在同一個文件夾中,因爲有產生這個HTML文件的程序,並把它們保存到其中的文件夾內我有我的腳本來讀取文件的文件夾。 總結,我有我的腳本在一個文件夾和裏面這個文件夾有更多的文件夾生成的HTML文件。

有誰知道我該怎麼辦?

+0

是否有任何邏輯文件夾的存儲方式,你可以依靠?文件夾是嵌套還是一切都只是一個層次?或者你將不得不搜索每個子文件夾的任何HTML文件? – SuperBiasedMan

回答

1
import os 
import codecs 

for root, dirs, files in os.walk("./"): 
    for name in files: 
     abs_path = os.path.normpath(root + '/' + name) 
     file_name, file_ext = os.path.splitext(abs_path) 
     if file_ext == '.html': 
      f = codecs.open(abs_path,'r') 
      print f.read() 

這將穿行<script dir>/通過在每個子目錄中的所有文件(./將得到翻譯成你的腳本目錄)和環路。 它將檢查擴展名是否爲.html並在每個.html文件上執行該操作。

您可能會定義更多「接受」的文件結尾(例如.htm)。

+0

@Pablo我的解決方案爲您提供了文件夾和文件的列表,不同之處在於我的解決方案是動態的,因此您不必預先編制文件夾和文件的名稱。我會建議使用'os.walk',但是當然,你也可以使用2個列表。 – Torxed

0

使用os.walk

import os,codecs 
for root, dirs, files in os.walk("/mydir"): 
    for file in files: 
     if file.endswith(".html"): 
      f = codecs.open(os.path.join(root, file),'r') 
      print f.read()