如何从我的字符串末尾删除“\ n”

时间:2014-04-02 20:25:55

标签: python string python-3.x

我有一个从文本文件读入数组的列表,但现在它们都有“\ n”。显然你在打印时没有看到它,因为它只需要换行。我想删除它,因为它让我有些麻烦。

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

这就是我用来从文件中读取的代码。我是一个总菜鸟,所以请不要使用疯狂的技术谈话,否则它将直接在我的头上

2 个答案:

答案 0 :(得分:2)

"string with or without newline\n".rstrip('\n')

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

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

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

答案 1 :(得分:1)

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

databaselist = [line.rstrip("\n") for line in database.readlines()]

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

  1. 移除对readlines的通话。迭代文件对象会一次生成一行。

  2. "r"参数移除到open,因为该函数默认为read-mode。这不会提高代码的速度,但会减少冗余。

  3. 最重要的是,使用with-statement打开文件。这将确保您在完成后自动关闭。

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

    with open("database.txt") as database:
        databaselist = [line.rstrip("\n") for line in database]