【问题标题】:How to overcome \n in list如何克服列表中的\n
【发布时间】:2020-07-03 02:03:25
【问题描述】:

我想用 python 从文本文件中的数据创建一个列表。我使用了正则表达式 re.split,如代码所示。但问题是我得到的列表中的最后一个数据\ n。我不想要\n。如何解决这个问题?

我的文本文件保存为 pass1.txt:

aizakboy miaw

我的 Python 代码是

with open('pass1.txt', mode = 'r') as my_file:
        passinputs = my_file.read()
        passinputs_list = re.split(' ', passinputs)
print(passinputs_list)

输出:

['aizakboy', 'miaw\n']

这里最后一个数据 miaw 带有 'miaw\n' 。我想要miaw 而不是miaw\n。解决办法是什么?

【问题讨论】:

  • passinputs = my_file.read().splitlines()
  • 是否需要拆分文件的所有单词?或者只是所有的行?
  • 我需要拆分文件的所有单词。 @Karl Knechtel
  • 查看 str.splitlines()。更一般地,请参见 str.rstrip()
  • 如果我添加 str.rstrip() 或 str.splitlines() 我得到 ['aizakboy', 'miaw', '']。这里''是新问题。我只想要 ['aizakboy', 'miaw']

标签: python python-3.x regex list text


【解决方案1】:

我需要拆分文件的所有单词。

那么正则表达式不是您想要的工具。它比您预期的要简单得多:内置字符串的split 方法有一个特殊情况,可以在“任何空格”上拆分。

with open('pass1.txt', mode = 'r') as my_file:
    passinputs_list = my_file.read().split()

【讨论】:

    【解决方案2】:

    应该能够使用 .strip() 删除尾随字符。我在 Learn Python the Hard Way 中使用了它。练习 23 使用它来去除您要以 UTF-8 编码的语言列表中的尾随但隐藏的 \n。 他们的例子是 next_lang = line.strip()

    【讨论】:

      【解决方案3】:

      您无需使用常规表达式即可获得结果。 split 方法默认生成一个列表:

      with open('pass1.txt', mode = 'r') as my_file:
              passinputs = my_file.read()
              passinputs_list = split(passinputs)
      print(passinputs_list)
      

      输出:

      ['aizakboy', 'miaw']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多