如何从文本文件到列表的元素末尾删除分号

问题描述 投票:0回答:2

如何从文本文件中删除该分号(;)。我的文本文件的内容:

    201911007,1,28;
    201203008,1,28;
    199710014,1,28;
    201612010,1,28;
    201710017,1,28;

然后python读取它,如果我运行代码,它总是在28末尾有分号

    with open("empMR.txt", 'r') as files:
    for dln in files:
        dln = dln.strip()
        if len(dln) >= 1:
            lii = dln.split(",")
            MR_empno.append(lii[0].strip())
            month.append(lii[1].strip())
            days_work.append(lii[2].strip())
print(days_work)

输出:['28;','28;','28;','28;','28;']我想删除每个输出上的分号(;)预期输出[28,28,28,28,28]

python integer text-files removing-whitespace automatic-semicolon-insertion
2个回答
0
投票

正则表达式是字符串的强大工具。

import re
in_list = ['28;', '28;', '28;', '28;', '28;']
out_list = [re.sub(';', '', item) for item in in_list]
print(out_list)
['28', '28', '28', '28', '28']

0
投票

有几种方法可以解决此问题。

  • [看看.replace()方法,类似dln.replace(';', '')可能会有所帮助
  • 如果所有行看起来都一样,则可以删除最后一个字符-dln = dln[:-1]可能会有帮助

选择哪种选择取决于您对数据看起来总是一样有信心,以及您更喜欢哪种方法

© www.soinside.com 2019 - 2024. All rights reserved.