Python - 使用open / np.load打开多个文件

时间:2015-12-07 14:03:59

标签: python numpy

我尝试引入一系列文件 - 所有文件名称相似但编号不同,可以在函数中使用。

我尝试使用open('文件' .....)作为数据: 然后对它们进行研究,但我不确定是否有办法在没有全部手动的情况下执行此操作。

有没有一种说法,模式匹配它们所以我可以一个接一个地以相同的方式处理它们?

4 个答案:

答案 0 :(得分:3)

您可以from glob import glob for fle in glob("path_to/foo*[0-9].whatever"): # f = np.load... 查找所有文件:

2015-12-02 18:08:24.383

答案 1 :(得分:0)

是。我们假设您的所有文件都被称为fileX.csv,其中X是1到10之间的数字。您可以这样做。

import numpy as np

storage = {}
for i in range(1, 11):
    fname = 'file{}.csv'.format(i)
    storage[fname] = np.loadtxt(fname)

然后,您可以致电storage['file1.csv']

来访问您的数据

或者您也可以尝试字典理解。

storage = {'file{}.csv'.format(i):np.loadtxt('file{}.csv'.format(i))
            for i in range(1, 10)}

与上述相同。

答案 2 :(得分:0)

我不认为这可以通过开放功能存档。它为您打开的每个文件返回一个文件对象,并且无法将路径列表传递给该函数。

您可以做的是定义一个包含路径或列表的列表来管理不同的文件对象。 (每个要打开的文件一个)

paths = ['path_1','path_2','path_3']
files = []
for path in paths:
    try:
        files.append(open(path, <mode>))
    except IOError:
        print "File: {}, couldn't be opened or doesn't exist".format(path)

或者使用:

for path in paths:
    try:
        with open(path, <mode>) as myData:
            my_function(myData)
    except IOError:
        print "File: {}, couldn't be opened or doesn't exist".format(path)

答案 3 :(得分:-1)

你能做这样的事吗?

for filename in nameGeneration():
    with open(filename) as data:
        doMyWork(data)