【问题标题】:how to remove semicolon at the end of element from text file to list如何从文本文件中删除元素末尾的分号到列表
【发布时间】:2020-05-14 05:40:19
【问题描述】:

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

    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)

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

【问题讨论】:

  • dln = dln.strip("\n ;")
  • 使用rstrip(';')

标签: python integer text-files removing-whitespace automatic-semicolon-insertion


【解决方案1】:

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

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']

【讨论】:

    【解决方案2】:

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

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

    您选择哪一种取决于您对数据始终保持不变的信心,以及您更喜欢哪种方法

    【讨论】:

      【解决方案3】:

      只需包含您要删除的字符(包括;)

      for dln in files:
          dln = dln.strip("; \n\r\t")
      

      你不需要为其他函数添加额外的调用,尤其是不需要正则表达式(使用正则表达式可能有其他正当理由,请参见下面的示例)

      data = re.findall("([^,]*)\s*,\s*([^,]*)\s*,\s*([^;]*)\s*;",files.read())
      for empNo,monthNo,days_work in data:
          print("E:",empNo, "Month:",monthNo, "Days Worked:",days_work)
      

      【讨论】:

        【解决方案4】:

        如果你想删除 ;从您的文件中永久保存。用vim打开文件

        vi filename
        then press esc
        enter :%s/;$//g then enter
        save the file esc-->:wq --> enter
        

        如果你想在python中处理它

        with open('filename.txt','r') as fp:
            data=fp.read()
        data = data.splitlines()
        data = [line.strip(';') for line in data]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-01-12
          • 1970-01-01
          • 1970-01-01
          • 2017-05-10
          • 1970-01-01
          • 2011-12-28
          • 1970-01-01
          相关资源
          最近更新 更多