python中使用os模块的popen方法,去除输出多余的空行

在python中可以使用os模快来执行shell语句,在使用popen方式得到自己的输入的shell语句返回值的时候,对多出一个空行,下面示范去除空行的方法
可以看到,下面使用popen方法得到的输出值会多处一个空行

>>> import os
>>> file_info = os.popen('ls -l tmp.txt').read()
>>> print(file_info)
-rw-r--r--  1 julie-zhou  staff  14663 11  6 19:37 tmp.txt

>>>

使用.readlines()来查看返回值的详细信息
可以看到,在输出的值后面,默认多了一个换行符 \n

>>> file_info = os.popen('ls -l tmp.txt').readlines()
>>> print(file_info)
['-rw-r--r--  1 julie-zhou  staff  14663 11  6 19:37 tmp.txt\n']
>>>

我们可以将换行符替换成空或者删除
可以使用内置函数replace(’\n’, ‘’),来替换字符串中的换行符(\n),将其替换成空。

>>> file_info = os.popen('ls -l tmp.txt').read()
>>> file_info = os.popen('ls -l tmp.txt').read().replace('\n', '')
>>> print(file_info)
-rw-r--r--  1 julie-zhou  staff  14663 11  6 19:37 tmp.txt
>>>

也可以通过下面的函数来进行取出最后的空行
首先定义一个函数

def replace_last(string, s, now):
    head, _sep, tail = string.rpartition(s)
    return head + now + tail

再调用函数去除最后的空行符号 \n

test_str = 'Hello CSDN\n'
print("#"*20)
print(test_str)
print("#"*20)
print(replace_last(test_str, '\n', ''))
print("#" * 20)

得到的值为

####################
Hello CSDN

####################
Hello CSDN
####################

可以看出,最后的空行去掉了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值