Python:你能否在每次迭代中使用 glob(或类似的)扩展数组以从目录中读取文件

Python: Can you extend an array on each iteration using glob (or similar) to read in files from a directory

有没有办法使用 globfor 循环和 with 命令组合的每次迭代中扩展存储文件数据的数组。目前,我有类似

import glob
from myfnc import func


for filename in glob.glob('*.dta'):
    with open(filename,'rb') as thefile:

        fileHead, data = func(thefile)

其中 func 在另一个脚本 myfnc 中定义。这样做是在目录中的每次迭代中,将每个文件中的数据存储在 fileHeaddata(作为数组)中,擦除上一次迭代中的任何内容。我需要的是在每次传递时扩展每个数组的东西。有没有好的方法来做到这一点?它不需要是带有组合的 for 循环。这就是我从目录中读取所有文件的方式。

我想预先初始化数组,然后在 with 一次完成后尝试扩展它们,但是 extend 命令给了我某种错误。有了错误,代码看起来像

import glob
from myfnc import func

fileHead, data = [0]*2


for filename in glob.glob('*.dta'):
    with open(filename,'rb') as thefile:

        fileHeadExtend, dataExtend = func(thefile)

    fileHead.extend(fileHeadExtend)
    data.extend(dataExtend)

所以,它的问题是 fileHeaddata 都被初始化了,但是是 int 的。但是,我不想将数组初始化为这么多的零。一开始就不应该有任何任意值。所以,这就是问题所在。

你想要:

import glob
from myfnc import func

fileHead = list()
data = list()

for filename in glob.glob('*.dta'):
    with open(filename,'rb') as thefile:
        fileHeadExtend, dataExtend = func(thefile)
    fileHead.extend(fileHeadExtend)
    data.extend(dataExtend)