我有一个从文本文件读入数组的列表,但现在它们都有“\ n”。显然你在打印时没有看到它,因为它只需要换行。我想删除它,因为它让我有些麻烦。
database = open("database.txt", "r")
databaselist = database.readlines()
这就是我用来从文件中读取的代码。我是一个总菜鸟,所以请不要使用疯狂的技术谈话,否则它将直接在我的头上
答案 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()]
但是,我建议您对代码进行三次更改以提高效率:
移除对readlines
的通话。迭代文件对象会一次生成一行。
将"r"
参数移除到open
,因为该函数默认为read-mode。这不会提高代码的速度,但会减少冗余。
最重要的是,使用with-statement打开文件。这将确保您在完成后自动关闭。
总之,新代码将如下所示:
with open("database.txt") as database:
databaselist = [line.rstrip("\n") for line in database]