Python使用readlines()读取文件带\n的原因及解决方法
Python readlines()读取文件带换行符的原因及解决方法
原因
readlines() 方法的设计逻辑是保留每行末尾的换行符(\n)——它会完整读取文件中每一行的内容,包括用于分隔行的换行符,所以返回的列表元素会带有 \n。你看到的教程结果没有换行符,大概率是教程里省略了后续的换行符处理步骤,或者用了其他自动去除换行的读取方式。
解决方法
以下是几种常用的处理方式,最终都能得到你期望的整数列表:
方法1:遍历readlines()结果,去除换行并转整数
对每个读取到的行字符串,用 strip()(或 rstrip('\n'))去掉换行符,再转换为整数:
with open('numbers.txt', 'r') as f: raw_lines = f.readlines() clean_numbers = [int(line.strip()) for line in raw_lines] # 输出: [1, 2, 3]
- 用
strip()会同时去掉字符串首尾的所有空白字符(包括空格、制表符等);如果只想精准去掉换行符,改用line.rstrip('\n')更稳妥。
方法2:用splitlines()替代readlines()
read().splitlines() 会直接返回不带换行符的字符串列表,再转整数即可:
with open('numbers.txt', 'r') as f: lines = f.read().splitlines() clean_numbers = [int(line) for line in lines] # 输出: [1, 2, 3]
方法3:直接迭代文件对象
文件对象本身是可迭代的,每次迭代返回一行内容,同样可以处理:
clean_numbers = [] with open('numbers.txt', 'r') as f: for line in f: clean_numbers.append(int(line.strip())) # 输出: [1, 2, 3]
内容的提问来源于stack exchange,提问作者Waqas liaqat
相关产品推荐
相关产品推荐

