Python读取外部文件生成列表时如何去除元素末尾的\n?
解决读取文件时行尾换行符残留问题
你遇到的问题是因为文本文件里每行(除最后一行)末尾都有换行符\n,Python读取每行时会保留这个符号,导致split后的密码部分带上了\n,拼接后就出现了多余的换行符。以下是几种不修改原文件的解决方法:
方法1:提前清理整行的换行符
在拆分每行之前,先移除行尾的换行符(只删\n,避免误删密码里的空格):
f = open('user.txt', 'r+') credentials = [] for line in f: # 仅移除行尾的换行符,不影响其他内容 line_clean = line.rstrip('\n') line_split = line_clean.split(', ') element = line_split[0] + line_split[1] credentials.append(element) print(credentials) f.close()
方法2:单独清理密码部分的换行符
如果担心整行清理会影响其他内容,可以只对拆分后的密码字段做处理:
f = open('user.txt', 'r+') credentials = [] for line in f: line_split = line.split(', ') # 只去掉密码末尾的换行符 element = line_split[0] + line_split[1].rstrip('\n') credentials.append(element) print(credentials) f.close()
更推荐的写法:使用with语句自动管理文件
with语句会在代码块结束后自动关闭文件,避免手动close可能出现的遗漏:
credentials = [] with open('user.txt', 'r') as f: for line in f: # 移除换行符后拆分,直接解包到变量更清晰 username, password = line.rstrip('\n').split(', ') credentials.append(username + password) print(credentials)
以上几种方法都能在不修改原文件的前提下,生成符合要求的无换行符的拼接列表,方便后续匹配用户输入的账号密码。
内容的提问来源于stack exchange,提问作者tekkyprograms
相关产品推荐
相关产品推荐

