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
####################

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

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页