在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
####################
可以看出,最后的空行去掉了