python: line=f.readlines() 后如何消除line中的’\n’

1、问题

在文本中,每行结尾有个'\n',举个例子,

f = open("log.txt")
logs = f.readlines()
for log in logs:
    print(log)
f.close()
print(logs)

输出

2019-07-01 08:23:07,574 - __main__ - INFO - Start print log

2019-07-01 08:23:07,575 - __main__ - WARNING - Something maybe fail.

2019-07-01 08:23:07,575 - __main__ - INFO - Finish

['2019-07-01 08:23:07,574 - __main__ - INFO - Start print log\n', '2019-07-01 08:23:07,575 - __main__ - WARNING - Something maybe fail.\n', '2019-07-01 08:23:07,575 - __main__ - INFO - Finish\n']

可以看出每行输出log有个空行,logs里面每行结尾有个‘\n’,

 

2、解决'\n'方法

2.1 通过splitlines

f = open("log.txt")
logs = f.read().splitlines()
for log in logs:
    print(log)
f.close()
print(logs)

2.2 通过strip

f = open("log.txt")
logs = f.readlines()
log_new = []
for log in logs:
    print(log.strip('\n'))
    log_new .append(log.strip('\n'))
f.close()
print(log_new)


2.3 通过join和strip

f = open("log.txt")
logs = f.readlines()
f.close()
log_new = ''.join(logs).strip('\n')
print(log_new)

注:strip是字符串的属性,f.readlines返回的是一个列表。既然f.readlines()返回的是列表,而strip是字符串的属性,不难想到只要我们将f.readlines()返回的列表转换成字符串就能 用strip这个属性了。那么怎么将列表转为字符串呢?这里用的是字符串的join属性。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值