Python中为什么按行读取txt文本列表每一行都带了\n?
不能自动去掉 \n 么
Python中为什么按行读取txt文本列表每一行都带了\n?
换行符。
要去掉的话:
for line in file.readlines():
line=line.strip(’\n’)
这是文件读取的基本特性。\n是换行符,表示每行的结尾。当你用readlines()或迭代文件对象时,Python会保留这个字符。
看个例子就明白了:
# 假设 test.txt 内容为:
# Hello
# World
with open('test.txt', 'r') as f:
lines = f.readlines()
print(lines) # 输出:['Hello\n', 'World\n']
# 或者用循环
with open('test.txt', 'r') as f:
for line in f:
print(repr(line)) # 输出:'Hello\n' 和 'World\n'
要去掉\n,有几种常用方法:
- 用
strip()方法 - 去掉首尾空白字符(包括\n)
with open('test.txt', 'r') as f:
lines = [line.strip() for line in f]
- 用
rstrip('\n')- 只去掉右侧的换行符
with open('test.txt', 'r') as f:
lines = [line.rstrip('\n') for line in f]
- 用
splitlines()- 专门用来分割文本行
with open('test.txt', 'r') as f:
content = f.read()
lines = content.splitlines() # 自动去掉换行符
简单说,\n是文件的一部分,去掉它用strip()或splitlines()就行。
Python 不会自动去掉换行符的。
with open(‘test.txt’, ‘r’) as f:
lines = [line.strip() for line in f.readlines()]
使用 strip()函数可以去掉行首和行尾的 whitespace,比如空格,制表符、换行符。
\n 是换行符。
要去掉的话,自己处理
.rstrip("\n")
Windows 下的文本文件行末是\n\r 哦
谢谢楼上各位的解答, 我主要是疑惑为什么还带个 ‘\n’,以前用 delphi, 这种都是预处理掉 换行符的,所以疑惑了一下
这是哪个位面的 Windows。
linux,unix:\r\n
windows:\n
Mac OS:\r
at 错人了。你 linux 和 windows 的搞反了吧
总之 windows 的换行符是先回车再换行
linux 只有回车,mac 只有换行
你们是搞笑吗?
LF: Unix and Unix-like systems (Linux, macOS, FreeBSD, Multics, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, and others[1]
CR+LF: Microsoft Windows, DOS (MS-DOS, PC DOS, etc.), DEC TOPS-10, RT-11, CP/M, MP/M, Atari TOS, OS/2, Symbian OS, Palm OS, Amstrad CPC, and most other early non-Unix and non-IBM operating systems
https://stackoverflow.com/questions/426397/do-line-endings-differ-between-windows-and-linux
I translate this into these line endings in general:
Windows: '\r\n’
Mac (OS 9-): '\r’
Mac (OS 10+): '\n’
Unix/Linux: '\n’
我 96 年开始玩电脑的,难道你们现在这些小年轻码农玩的不一样?
所以我们这个位面的 windows 是 /r/n,不是 /n/r…
尴尬现场
尬秀现场
你们这个位面的不打错字?
楼上看的我一脸懵
你的回答才是完整的
因为本来就每一行都有 \n
是是是,你把\r\n 打错成\n\r 一定是我们的错。
错怪你了,不好意思啊。
笑
「我玩电脑玩得早,你们这些小年轻也配挑我的错?」
他以为 96 年开始玩电脑就算早的了……(无奈
我 96 年开始玩电脑的,难道你们现在这些小年轻码农玩的不一样?哈哈哈
#24
年轻真好
我已是老头一个……
96 年就开始完电脑的大神,能帮我盗个号吗 (๑◔‿◔๑)
哇.jpg
是不是歪楼了
哈哈哈哈,那人真逗。
第一次遇到这样的问题的时候是两个文档内容一模一样,是个密码字典。一看,哎呦喂,怎么一个 10M,一个 13M (假设)。
看内容一样,看 16 进制发现不对,似乎是文件格式不同。最后百度了下,才知道每个系统下文件的换行字符不一样。
对于 96 年开始玩电脑的,我掐指算了算,这人真“年轻”····
哇.jpg
windows: \r\n
unix(linux,mac): \n
en.wikipedia.org/wiki/Newline
自己看自己的六楼…摊手
一群 sb
看看谁先挑衅谁的,sb
sb 一个
文件不大就一次读入
open(file).read().splitlines()
你六楼说错,别人指出你的错误,然后你 14 楼说
你们是搞笑么?
怎么看也是你在挑衅别人啊,SB
Python 读文本文件根本不会读到 \r,三种行尾都会转换成 \n
瓜子花生矿泉水
感谢扩充某个增强友善度的列表
各位生活经验+1,不是每个人都有幽默感的
#33 喵喵喵?
前排出售 96 年的拉菲和花生米
00 年开始玩电脑的看着楼上瑟瑟发抖
妈妈快看!我会粘贴 jpg 拉!还是 imgur 的呢,是不是比其他同学牛呢?
所以说码农永远是社会底层的渣子。
表面迎合.jpg
https://stackoverflow.com/questions/11280282/to-read-line-from-file-in-python-without-getting-n-appended-at-the-end
保留 /n 是为了区分空行(’\n’)和文件结束(空串)。
我的天
兄弟米心态怎么炸成这样,太有争斗心了。
#53 看历史记录,仅鄙视"码农"这个群体.虽然不清楚发生了什么,但是还是要



