我有很多数据文件名称未知。我已经想出了一种让他们全部阅读和打印的方法,但是我想制作它们的图表,因此我需要以可行的方式获取数据。读取未知名称文件的选定部分
数据文件非常整齐地排列(标题的每一行都包含有关存储在那里的信息),但是我无法制作一个脚本来选择我需要的数据。
for filename in glob.glob(fullpath):
with open(filename, 'r') as f:
for line in f:
if 'xx' in line:
Do my thing
if 'yy' in line:
Do my thing etc.
但头下方还有人数不详的数据块:第一个50+行的文件包含标题,而我只需要使用一些,使用的东西这样当不成问题的列和未确定的行数(标题中指定了列数和每列是什么)。这个我不能通过例如matplotlib来创建图表来读取。 (我可以通过手动将数据复制到单独的文件并将其读取为可绘制的格式,但这不是我想要每次执行每个文件时都要做的事情......)数据开始之前的行包含非常有用的内容#eoh,但我无法想出一种方法来结合前50行的选择性阅读,然后开始将所有内容读入数组。如果有方法以更好的方式做我想做的事情(包括选择地图并查看哪些文件存在并可读),我乐意提供建议。
更新: @ImportanceOfBeingErnest提出的解决方案似乎非常有用,但我没有得到它的工作。 所以我会从提到的答案中缺少的数据开始。 COLUMNNAMES中给出的格式如下:
#COLUMNINFO = NUMBER1,UNIT,测量,NUMBER2
在该格式中数字1是可以得到columnnumber,单位是测量单位,测量是什么被测量和NUMBER2在数量上是什么测量。 数据由空格分隔,但这不会成为问题,我怀疑。
我试图执行循环中的标题读取,以确定标题的结束,它没有任何可见的效果,即使是检查中间结果的打印命令没有显示。 一旦我把'print line'放在'for line in f:'之后,我想我可以看到出了什么问题,但是看起来好像整个循环都被忽略了,包括break命令,因为文件读取完成而导致错误没有数据留给其他部分阅读...
任何帮助,将不胜感激。
你看过“熊猫”吗?在列中排列数据时非常有帮助,而且非常容易* matplotlib * –