2017-09-14 242 views
-3

如何從Python中的單個文件夾讀取多個txt文件?如何從Python中的單個文件夾讀取多個txt文件?

我試着用下面的代碼,但它不工作。

import glob 

import errno 

path = '/home/student/Desktop/thesis/ndtvnews/garbage' 

files = glob.glob(path) 

for name in files: 
    try: 
     with open(name) as f: 
      print name 

     for line in f: 
      print line, 

     f.close() 

    except IOError as exc: 
     if exc.errno != errno.EISDIR: 
      raise 
+3

可能重複[如何打開文件夾中的每個文件?](https://stackoverflow.com/questions/18262293/how-to-open-every-file-in-a-folder) – Chris

+0

當您使用「隨着打開」它會自動關閉你的文件。所以f.close()可能會給你一個錯誤。除此之外,你會得到什麼樣的輸出/錯誤? – BrandonM

+0

for循環應該在with-block內,並且'f.close()'行應該被刪除。 – ekhumoro

回答

0

您的glob不正確。您應該在路徑的末尾添加/*以選擇路徑中的所有文件(或目錄),然後檢查它們是否爲os.path.isfile的文件。例如:

from os.path import isfile 
files=filter(isfile,glob.glob('%s/*'%path)) 

您在實際打開時也存在問題。當您的with聲明結束時,該文件將關閉,並且f不再可訪問。您對該文件所做的任何操作都應在with聲明之下。而且你不應該明確地關閉它。

+0

謝謝..它正在工作 –

相關問題