我必须通过导入文件夹中的所有.txt文件来创建一组numpy数组。我现在就是这样做的:
wil_davide_noIA_IST_nz300 = np.genfromtxt("%s/davide/wil_davide_noIA_IST_nz300.txt" %path)
wig_davide_multiBinBias_IST_nz300 = np.genfromtxt("%s/davide/wig_davide_multiBinBias_IST_nz300.txt" %path)
wig_davide_multiBinBias_PySSC_nz300 = np.genfromtxt("%s/davide/wig_davide_multiBinBias_PySSC_nz300.txt" %path)
wig_davide_noBias_PySSC_nz300 = np.genfromtxt("%s/davide/wig_davide_noBias_PySSC_nz300.txt" %path)
wig_davide_IST_nz300 = np.genfromtxt("%s/davide/wig_davide_IST_nz300.txt" %path)
wig_davide_noBias_IST_nz300 = np.genfromtxt("%s/davide/wig_davide_noBias_IST_nz300.txt" %path)
wig_davide_PySSC_nz300 = np.genfromtxt("%s/davide/wig_davide_PySSC_nz300.txt" %path)
...
从文件夹中
我能以某种方式自动化这个过程吗?请注意,我希望数组与导入的文件具有相同的名称(当然没有.txt)
多谢各位
提醒:如果文件或其名称存在任何安全问题,您不应该这样做
否则,您可以使用
exec
函数来获取所需的变量。 有关列表方法,请参见其他解决方案根据您的文件夹/文件结构,您可能需要对代码进行一些更改,但这应该按照要求进行
这就是获取所有文件名的方法
path
是您的文件路径("./"
如果在同一目录中)此外,您还可以使用提供的if结构过滤某些文件。这里我只选择txt文件
filter
是一些可以应用的过滤器(使用"." not in file
获取目录)我还没有对此进行测试,但我认为这个伪代码应该可以工作——关于它的唯一“伪”是硬编码的
"dir/to/files"
字符串,您必须将其更改为包含文本文件的目录的路径。在现代Python中,您将使用pathlib
或glob
标准库模块来迭代给定目录中的所有文本文件。创建一个数量可变的变量,并在运行时确定变量名从来都不是一个好主意。相反,将numpy数组保存在某种集合中。在本例中,我建议使用字典,这样您就可以按键访问各个numpy数组,其中键是作为字符串的相应文件的名称,当然不带扩展名:相关问题 更多 >
编程相关推荐