Python:你能否在每次迭代中使用 glob(或类似的)扩展数组以从目录中读取文件
Python: Can you extend an array on each iteration using glob (or similar) to read in files from a directory
有没有办法使用 glob
在 for
循环和 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
中定义。这样做是在目录中的每次迭代中,将每个文件中的数据存储在 fileHead
和 data
(作为数组)中,擦除上一次迭代中的任何内容。我需要的是在每次传递时扩展每个数组的东西。有没有好的方法来做到这一点?它不需要是带有组合的 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)
所以,它的问题是 fileHead
和 data
都被初始化了,但是是 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)
有没有办法使用 glob
在 for
循环和 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
中定义。这样做是在目录中的每次迭代中,将每个文件中的数据存储在 fileHead
和 data
(作为数组)中,擦除上一次迭代中的任何内容。我需要的是在每次传递时扩展每个数组的东西。有没有好的方法来做到这一点?它不需要是带有组合的 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)
所以,它的问题是 fileHead
和 data
都被初始化了,但是是 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)