【问题标题】:How do I retrieve the contents of all the files in a directory in a list each one?如何检索每个列表中目录中所有文件的内容?
【发布时间】:2015-02-24 16:49:45
【问题描述】:

我想读取目录中的所有文件,所以我正在执行以下操作:

path = '/thepath/of/the/files/*'
files = glob.glob(path)
for file in files:
    print file

问题是当我打印文件时,我什么也得不到;知道如何在每个文件的列表中返回文件的所有内容吗?

编辑:我在路径中附加了一个星号,这应该会为您提供该路径中的所有文件和目录。

【问题讨论】:

  • 我很困惑,你能解释一下你对content的定义是什么吗?
  • 这是你想要的吗? contents=[ii.read() for ii in glob.glob(path)]
  • 内容是文件的每个文档都有的东西。
  • 我也试过这个:content_of_the_docs = [codecs.open('/the/path/of/the/folder,'r','UTF-8').read()],但只适用于一个文件,我想对文件夹中的所有文件都这样做。
  • @newWithPython 是 'opiniones' 一个具有有效路径的字符串?

标签: python python-2.7 io directory


【解决方案1】:

我会做类似以下的事情来只获取文件。

import os
import glob

path = '/thepath/of/the/files/*'
files=glob.glob(path)
for file in files:
    if os.path.isfile(file):
        print file

【讨论】:

  • 还是一样,打印的时候什么都没有,怎么解决?
  • 假设您要搜索 /home/newWithPython。你使用“/home/newWithPython/*”,我刚刚试了一下,效果很好。
  • 问题不在于路径,当我运行代码时,我在终端没有得到任何东西。我得到:进程以退出代码 0 结束
  • 我什至没有找到文件未找到异常
  • exit code 0 通常表示执行过程中没有出现问题。你确定路径不为空吗?你确定路径存在吗?
【解决方案2】:

您的问题有点不清楚,但据我了解,您想获取目录中所有文件的内容。试试这个:

# ...
contents = {}
for file in files:
    with open(file) as f:
        contents[file] = f.readlines()
print contents

这将创建一个字典,其中键是文件名,值是文件的内容。

【讨论】:

  • 我收到了这个:IOError: [Errno 21] Is a directory: '/'
  • 问题是我有一个文件夹,我想检索该文件夹中每个文档的内容。谢谢
【解决方案3】:

就像我前段时间发表的评论一样,这应该可以:

contents=[open(ii).read() for ii in glob.glob(path)]

或者这个,如果你想要一本字典:

contents={ii : open(ii).read() for ii in glob.glob(path)}

【讨论】:

  • 抱歉,我忘记打开文件了,只要path 是有效的路径字符串,这应该可以工作。
猜你喜欢
  • 2022-01-22
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
相关资源
最近更新 更多