关于python:如何删除 从字符串末尾

How to remove the “
” from the end of my string

本问题已经有最佳答案,请猛点这里访问。

我有一个从文本文件读取到数组中的列表,但现在它们的末尾都有""。很明显,当你打印的时候你看不到它,因为它只需要一个新行。我想把它取下来,因为它给我带来了麻烦。

1
2
database = open("database.txt","r")
databaselist = database.readlines()

这就是我从文件中读取的代码。我是一个彻头彻尾的笨蛋,所以请不要使用疯狂的技术谈话,否则它会直接超过我的头。


1
2
3
"string with or without newline
"
.rstrip('
'
)

rstrip
一起使用可避免任何不必要的副作用,除非它将在最后删除多个副作用(如果存在)。

否则,您需要使用这个不那么优雅的功能:

1
2
def rstrip1(s, c):
    return s[:-1] if s[-1]==c else s


使用str.rstrip删除每行末尾的换行符:

1
2
databaselist = [line.rstrip("
"
) for line in database.readlines()]

但是,我建议您对代码再进行三次更改以提高效率:

  • 取消对readlines的调用。迭代一个文件对象会一次生成一行。

  • 删除open"r"参数,因为函数默认为读取模式。这不会提高代码的速度,但会减少冗余。

  • 最重要的是,使用WITH语句打开文件。这将确保在完成后自动关闭。

  • 总之,新代码将如下所示:

    1
    2
    3
    with open("database.txt") as database:
        databaselist = [line.rstrip("
    "
    ) for line in database]