我有一个名为main
的目录,其中包含两个文件:一个名为alex.txt
的文本文件,其内容仅为100
,另一个名为mark.txt
的文件,其内容为400
。
我想创建一个进入目录的函数,并获取每个文件名和该文件的内容并将其存储(到dict中?)。因此,最终结果将如下所示:
({'alex.txt', '100'}, {'mark.txt', '400'})
对大量文件执行此操作的最佳方式是什么?
发布于 2012-09-25 13:08:23
这看起来像是os.walk
的一份好工作
d = {}
for path,dirs,fnames in os.walk(top):
for fname in fnames:
visit = os.path.join(path,fname)
with open(visit) as f:
d[visit] = f.read()
此解决方案还将递归到子目录(如果它们存在)。
发布于 2012-09-25 13:08:11
使用字典看起来像是要走的路。
您可以使用os.listdir
获取directory
中的文件列表。然后,对文件进行迭代,打开每个文件,读取其输入并将其存储在您的字典中。
如果您的main
目录有一些子目录,您可能希望使用os.walk
函数递归地处理它们。否则请坚持使用os.listdir
。
请注意,os.listdir
的一项是相对于main
的。在打开文件之前,您可能需要将路径添加到main
。在这种情况下,使用os.path.join(path_to_main, f)
,其中f
是os.listdir
的一项。
发布于 2012-09-25 13:11:31
import os
bar = {}
[bar.update({i: open(i, 'r').read()}) for i in os.listdir('.')]
或者(通过mgilson)
bar = dict( (i,open(i).read()) for i in os.listdir('.') )
https://stackoverflow.com/questions/12583609
复制相似问题