我试图用以下格式解析一个文件
1999
I
Willem Jan van Steen 9859 77
Guillaume Kielmann 5264 77
Guillaume Bos 8200 6(档案要长得多,按学年(如1999)和不同的学习(如I)分开。我唯一需要处理的是最后一个数字(像77,77,6),这个数字是一个百分比。最后的目标是制作一个由10条组成的BarChart,条形图由文件中的百分比属于条形图范围的累加(和)组成(比如条形图从70 %到80 %->如果上面的输入是整个文件的总和,那么条形图将是高度2。但我的第一个问题是,我不知道如何解析输入。)我在想python应该读取这些行,然后从索引(因此形成一个范围)中,百分比数开始对数字“做一些事情”(->查看它们下降的条形图的范围,然后对该条形图中百分比下降的次数之和进行循环.)
希望有人能帮我!
发布于 2013-11-21 10:48:44
使用str.rsplit()将字符串拆分为单词,从右边计数。如果传入None,它将在任意宽度的空格上拆分,为您提供整洁的剥离字符串,并进行计数,使您可以在第一列中保留空白。
关于这意味着什么的简短演示:
>>> 'Willem Jan van Steen 9859 77\n'.rsplit(None, 2)
['Willem Jan van Steen', '9859', '77']在这里,名称中的空格被保留下来,但后面的两个数字现在是列表中的单独元素。最后的换行线不见了。
如果在打开的文件对象上循环,将得到单独的行,从而提供一个逐行解析文件的方法:
with open(inputfilename) as inputfh:
for line in inputfh:
columns = line.rsplit(None, 2)
if len(columns) < 3:
continue # not a line with name and numbers
percentage = int(columns[2])
if 70 <= percentage <= 80:
# we have a line that falls within your criteriahttps://stackoverflow.com/questions/20117928
复制相似问题