我读过file.readlines逐行读取整个文件并将其存储在列表中。如果我有这样的档案-
Sentence 1
Sentence 2
Sentence 3我用readlines打印每个句子,就像这样-
file = open("test.txt")
for i in file.readlines():
print i输出是
Sentence 1
Sentence 2
Sentence 3我的问题是,为什么我要在每句话之间加一行,以及如何去掉它?
更新
我发现使用i.strip也删除了额外的行。这一切为什么要发生?据我所知,split删除字符串末尾和开头的空格。
发布于 2013-11-04 06:05:19
file.readlines()返回字符串列表。每个字符串都包含尾换行符。print语句使用newlnie打印传递的参数。这就是为什么需要额外的行。
若要删除额外的换行符,请使用str.rstrip
print i.rstrip('\n')或者使用sys.stdout.write
sys.stdout.write(i)顺便说一句,除非您同时需要所有的行,否则不要使用file.readlines。只需迭代文件。
with open("test.txt") as f:
for i in f:
print i.rstrip('\n')
...更新
在Python3中,为了防止print打印尾换行符,可以使用print(i, end='')。
在Python2中,如果您使用相同的特性:from __future__ import print_function
更新的答案
选项卡,Newline也被认为是空白空间。
>> ' \r\n\t\v'.isspace()
True发布于 2013-11-04 06:06:15
file.readlines()(也包括file.readline())包括换行符。
做
print i.replace('\n', '')如果你不想要的话。
在行的末尾包含换行符似乎很奇怪,但这允许,例如,您可以判断最后一行是否有换行符。这种情况在许多语言的I/O中是很棘手的。
发布于 2013-11-04 06:34:26
下面将为您删除换行符。
i = i.rstrip("\n") #strips newline希望这能有所帮助。
https://stackoverflow.com/questions/19762480
复制相似问题