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