从字符串中删除数值

2024-10-03 17:15:55 发布

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

我有一个2000行1列的文件

1007_s_at1
1007_s_at2
1007_s_at3
1007_s_at4
1007_s_at5
1007_s_at6
1007_s_at7
1007_s_at8
1007_s_at9
1007_s_at10

如上所示,我想删除“at”之后的最后一个数值。原则上,最后一个数字应该被截断。你知道吗

我试过把它们分开,然后高兴起来,但这只会使问题复杂化,我离答案还很远。你知道吗

你能建议用bash、shell、python或perl来解决这个问题吗。你知道吗

需要如下输出

   1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at
    1007_s_at

谢谢


Tags: 文件答案数字at数值at1at3at2
3条回答

只需将string.digits传递到.rstrip()即可删除字符串右侧的数字:

import string
with open('inputfile') as infile, open('outputfile') as outfile:
    for line in infile:
        outfile.write(line.rstrip().rstrip(string.digits) + '\n')
sed -i -e 's/[[:digit:]]*$//' filename

使用Perl

perl -p -e "s/\d+$//" input.txt > output.txt

相关问题 更多 >