首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从文本文件的特定部分读取Python

从文本文件的特定部分读取Python
EN

Stack Overflow用户
提问于 2016-11-25 02:54:35
回答 1查看 1.4K关注 0票数 0

我有一个像这样的文本文件:

代码语言:javascript
复制
1
Subpop 0 best fitness of run: Fitness: Standardized=73.0 Adjusted=0.013513513513513514 Hits=16
2
Subpop 0 best fitness of run: Fitness: Standardized=61.0 Adjusted=0.016129032258064516 Hits=28
3
Subpop 0 best fitness of run: Fitness: Standardized=73.0 Adjusted=0.013513513513513514 Hits=16
4
Subpop 0 best fitness of run: Fitness: Standardized=70.0 Adjusted=0.014084507042253521 Hits=19
5
Subpop 0 best fitness of run: Fitness: Standardized=72.0 Adjusted=0.0136986301369863 Hits=17
6
Subpop 0 best fitness of run: Fitness: Standardized=67.0 Adjusted=0.014705882352941176 Hits=22
7
Subpop 0 best fitness of run: Fitness: Standardized=65.0 Adjusted=0.015151515151515152 Hits=24
8
Subpop 0 best fitness of run: Fitness: Standardized=73.0 Adjusted=0.013513513513513514 Hits=16
9
Subpop 0 best fitness of run: Fitness: Standardized=78.0 Adjusted=0.012658227848101266 Hits=11
10
Subpop 0 best fitness of run: Fitness: Standardized=65.0 Adjusted=0.015151515151515152 Hits=24

我试图使用Python从每一行中的“标准化”和“命中”部分中提取数字,并将它们放在各自的列表中,但我不熟悉在Python中读取文件。做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-25 03:20:24

我们通常不为人们编写代码,但这看起来可能不是家庭作业。我也想提出一个重要的问题。

文件是以换行符结尾的字符串的可迭代性。以换行符结尾的字符串列表也是可迭代的。因此,从用于开发的代码开始,当代码在代码列表中工作时,切换到打开的文件。在我看来,不这样做是一个大错误,也是问题的根源。

接下来,迭代并抛出“垃圾”行。然后解析支付行,并对提取的数据进行任何处理。解析取决于问题。下面我选择使用拆分行和拆分方法。

代码语言:javascript
复制
file = '''\
1
Subpop 0 best fitness of run: Fitness: Standardized=73.0 Adjusted=0.013513513513513514 Hits=16
2
Subpop 0 best fitness of run: Fitness: Standardized=61.0 Adjusted=0.016129032258064516 Hits=28
3
Subpop 0 best fitness of run: Fitness: Standardized=73.0 Adjusted=0.013513513513513514 Hits=16
4
Subpop 0 best fitness of run: Fitness: Standardized=70.0 Adjusted=0.014084507042253521 Hits=19
5
Subpop 0 best fitness of run: Fitness: Standardized=72.0 Adjusted=0.0136986301369863 Hits=17
'''.splitlines(keepends=True)

stand = []
hits = []

for line in file:
    if len(line) < 50:
        continue
    fields = line.split('=')
    stand.append(float(fields[1].split()[0]))
    hits.append(int(fields[3].split()[0]))

print(stand)
print(hits)
# prints
# [73.0, 61.0, 73.0, 70.0, 72.0]
# [16, 28, 16, 19, 17]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40797049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档