首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >file.readlines留空行

file.readlines留空行
EN

Stack Overflow用户
提问于 2013-11-04 06:04:34
回答 5查看 14.6K关注 0票数 12

我读过file.readlines逐行读取整个文件并将其存储在列表中。如果我有这样的档案-

代码语言:javascript
复制
Sentence 1
Sentence 2
Sentence 3

我用readlines打印每个句子,就像这样-

代码语言:javascript
复制
file = open("test.txt") 
for i in file.readlines():
    print i

输出是

代码语言:javascript
复制
Sentence 1

Sentence 2

Sentence 3

我的问题是,为什么我要在每句话之间加一行,以及如何去掉它?

更新

我发现使用i.strip也删除了额外的行。这一切为什么要发生?据我所知,split删除字符串末尾和开头的空格。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-04 06:05:19

file.readlines()返回字符串列表。每个字符串都包含尾换行符。print语句使用newlnie打印传递的参数。这就是为什么需要额外的行。

若要删除额外的换行符,请使用str.rstrip

代码语言:javascript
复制
print i.rstrip('\n')

或者使用sys.stdout.write

代码语言:javascript
复制
sys.stdout.write(i)

顺便说一句,除非您同时需要所有的行,否则不要使用file.readlines。只需迭代文件。

代码语言:javascript
复制
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也被认为是空白空间。

代码语言:javascript
复制
>> ' \r\n\t\v'.isspace()
True
票数 11
EN

Stack Overflow用户

发布于 2013-11-04 06:06:15

代码语言:javascript
复制
file.readlines()

(也包括file.readline())包括换行符。

代码语言:javascript
复制
print i.replace('\n', '')

如果你不想要的话。

在行的末尾包含换行符似乎很奇怪,但这允许,例如,您可以判断最后一行是否有换行符。这种情况在许多语言的I/O中是很棘手的。

票数 1
EN

Stack Overflow用户

发布于 2013-11-04 06:34:26

下面将为您删除换行符。

代码语言:javascript
复制
i = i.rstrip("\n") #strips newline

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19762480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档