我有数据文件,我知道它们名字的开头和结尾。名称结构如下: ###_随机_字符串.EXT 其中####是从000到999的数字,扩展文件扩展名(这里是csv)。文件的数量可能很大,这就是为什么我使用python代码来处理它们(平滑、过滤、打印等)。 处理这些文件的代码将使用numpy.genfromtxt加载每个文件的数据。我会把numpy.genfromtxt在循环中传递与要处理的文件相对应的数字列表(FilesNum)。我想用'FilesNum'和扩展名来构造文件名。这是一个开始:
import numpy as np
import glob
import re
FilesNum = range(0, 350, 2)
EXT = 'csv'
X, Y = [], []
for num in FilesNum:
data = np.genfromtxt(glob.glob(str(num) + '*' + EXT), delimiter = ';')
X.append(data[:, 0])
Y.append(data[:, 1])
我的问题是环球网(FilesNum+'*'+EXT)不是我需要的,因为它应该生成一个列表。在我的特定情况下,每个数字只对应一个文件。考虑到这一点,我需要一个代码,将“*”替换为文件名的确切缺失部分。在
如果以0开头的文件是'000'u random_字符串.csv':
^{pr2}$同时:
np.genfromtxt('000_random_string.csv', delimiter = ',')
Out[30]:
array([[ 350. , -210. ],
[ 351.4 , -210. ],
[ 352.8 , -42.608],
...,
[ 1747.2 , -62.798],
[ 1748.6 , -210. ],
[ 1750. , -210. ]])
请注意:
glob.glob('%03d' % 0 + '*' + '.csv')
Out[31]: ['000_random_string.csv']
好吧,我找到了解决办法。我只需要给环球网(). 正如我所说的,每个数字只存在一个文件,所以给定索引0将始终满足我的需要。在
您缺少文件目录的路径。在
而且,不需要打电话环球网在文件名上。在
应该这么做。转换成文件扩展名为“u”的分隔符。在
则文件的完整路径为:
^{pr2}$编辑:谢谢你的评论。我应该先在谷歌上搜索,现在我得到了问题(可能)。会保持原样。在
好吧,我想我们已经接近解决方案了:
我想如果你使用马丁提供的%-格式的提示,你就在那里了(但是如果我没有正确理解你,如果随机字符串不同,你仍然需要glob)。 所以你的文件是0000_randomstring1.csv,0000_randomstring2.csv。。。0000个_随机字符串.csv,0002_randomstring1.csv,0002_randomstring2.csv。。。0000个_随机字符串.csv... 0350号_随机字符串.csv,对吧?你想让那些编号相同的文件读起来就像是一个文件,对吗?在
那么这个应该行得通:
如果你想把所有的文件都读入一个大文件,你也可以这么做
^{pr2}$哦,现在我明白了:
所以我建议你
现在您可以实际查看它找到的所有文件,并且您的循环变得更具可读性
相关问题 更多 >
编程相关推荐