用Python打开和读取大量文件

时间:2013-06-11 22:14:24

标签: python file-io

我需要打开37个数据文件并使用python进行分析。而不是用大量的open()和close()语句来强制我的代码,是否有一种简洁的方法来打开和读取大量文件?

4 个答案:

答案 0 :(得分:0)

您将不得不打开和关闭您希望从中读取的每个文件的文件句柄。你这样做的厌恶是什么?

您是否正在寻找确定需要阅读哪些文件的好方法?

答案 1 :(得分:0)

使用文件名字典来存档句柄,然后迭代这些项目。或者元组列表。或二维数组。或者或或......

答案 2 :(得分:0)

使用标准库fileinput module

传入命令行上的数据文件并像这样处理

import fileinput
for line in fileinput.input():
    process(line)

这将遍历命令行中传入的所有文件的所有行。此模块还提供帮助程序功能,以便您了解当前所在的文件和行。

答案 3 :(得分:0)

使用称为函数的神秘功能。

def slurp(filename):
  """slurp will cleanly read in a file's contents, cleaning up after itself"""
  # Using the 'with' statement will automagically close 
  # the file handle when you're done.
  with open(filename, "r") as fh: 
    # if the files are too big to keep in-memory, then read by chunks 
    # instead and process the data into smaller data structures as needed.
    return fh.read()

data = [ slurp(filename) for filename in ["data1.dat", "data2.dat", "data3.dat"]]

你也可以把整个事情结合起来:

for filename in ["a.dat", "b.dat", "c.dat"]:
  with open(filename,"r") as fh:
    for line in fh:
      process_line(line)

等等......