删除除带有%的行以外的所有内容,并删除%

2024-10-03 02:42:11 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:

1
Yuumi
78.57%
2075
1956
0.64
62.8
Thresh
77.59%
1079
917
0.83
19.3
Braum
76.00%
1868
1315
1.44
38.0

我希望它是:

78.57
77.59
76.00

(数字以百分比表示)

我试着在论坛上查找并使用来自文件和其他东西的阅读行,但我是一个初学者,所以无法让它工作这么久 在python中,请提前感谢


Tags: 文件数字论坛百分比初学者threshbraumyuumi
3条回答

假设您已将所有输入读入列表。你可以试试这个

inp = ['1', 'Yuumi', '78.59%', ...]
out = [float(a.remove('%')) for a in inp if '%' in a]

如果您这样做,您可以将文件中的所有输入都放入列表中

with open('my_file.txt') as file:
    inp = file.read.splitlines()

您可以使用regular expressions

import re

with open("file.txt") as f:
    for line in f:
        r = re.search(r'(\d+(\.[\d]+)?)%', line)
        if r:
            print(r.group(1))

根据您的样本数据,可以得出:

78.57
77.59
76.00

regex demo

with open('path/to/the/file') as fd:
    for line in fd:
        if '%' in line:
            print(line.strip().replace('%', ''))

或者您也可以在shell中执行此操作:

grep "%" filename | sed 's/%//g' >newfile

相关问题 更多 >