2017-09-14 205 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

谢谢..它正在工作 –

相关问题