我对python列表有一个小问题。 看到这段代码:
passwords = []
fob = open("/path/to/file", "r")
for add_items in fob :
passwords.append(add_items)
print passwords
fob.close()
代码结果:
['Monster1\n', 'Monster2\n', 'Monster3']
如何删除每个\n
中的add_items
?
答案 0 :(得分:3)
使用rstrip('\n')
或rstrip()
:
passwords.append(add_items.rstrip('\n'))
答案 1 :(得分:2)
您可以使用strip
更好地清理它并删除所有周围的空白区域。此外,您可以通过使用理解和上下文管理器来简化操作:
with open("C:\Users\Bucky\Desktop\pass.txt") as f:
passwords = [data.strip() for data in f]
在这个答案中,可以了解一个关于here的上下文管理器(with
语句)。该部分应解释有关文件对象以及如何使用上下文管理器的更多详细信息。
答案 2 :(得分:1)
您可以使用带有replace
的列表理解系列来清除字符串中\n
的所有实例(假设密码不应包含回车符):
>>> [pw.replace('\n', '') for pw in passwords]
['Monster1', 'Monster2', 'Monster3']
答案 3 :(得分:0)
以上答案可行。这样做,不直接剥离每一行或使用列表理解:
with open("C:\Users\Bucky\Desktop\pass.txt", "r") as fob:
passwords = fob.read().splitlines()