Python 2.7 解析df的输出--选择第一个%符号的输出
我有一个Python 2.7 解析df的输出--选择第一个%符号的输出,python-2.7,parsing,subprocess,Python 2.7,Parsing,Subprocess,我有一个子进程命令正在运行: 导入子流程;子进程调用(['df','--output=pcent']) 哪个输出s: Use% 80% 0% 0% 3% 1% 0% 51% 0% 我想抓取第二个%,旁边有一个数字(80%,在这种情况下,对其进行计算) 我怎样才能轻松地做到这一点 谢谢首先子流程。call只返回返回代码,因此您需要一些其他子流程函数,如检查输出: import subprocess output = subprocess.check_output([
子进程
命令正在运行:
导入子流程;子进程调用(['df','--output=pcent'])
哪个输出
s:
Use%
80%
0%
0%
3%
1%
0%
51%
0%
我想抓取第二个%
,旁边有一个数字(80%
,在这种情况下,对其进行计算)
我怎样才能轻松地做到这一点
谢谢首先
子流程。call
只返回返回代码,因此您需要一些其他子流程
函数,如检查输出
:
import subprocess
output = subprocess.check_output(['df', '--output=pcent'])
然后,输出以字节的形式提供(python 3)。因此,您必须将其解码为ASCII,然后我将使用嵌套列表和生成器理解:
- 根据空格(换行符/空格)拆分
- 处理每个令牌并删除百分号
- 仅当令牌由数字组成时才转换为整数
代码(使用命令的模拟输出,以便每个人都可以复制):
其中:
[80, 0, 0, 3, 1, 0, 51, 0]
当然,这比你要求的要多。要获取第一项,只需获取此列表中的第一项,或获取带有生成器和next
的第一个令牌:
first_percent = next(int(x) for x in (y.rstrip("%") for y in output.decode("ascii").split()) if x.isdigit())
第一个子流程。call
只返回返回代码,因此您需要一些其他子流程
函数,如检查输出
:
import subprocess
output = subprocess.check_output(['df', '--output=pcent'])
然后,输出以字节的形式提供(python 3)。因此,您必须将其解码为ASCII,然后我将使用嵌套列表和生成器理解:
- 根据空格(换行符/空格)拆分
- 处理每个令牌并删除百分号
- 仅当令牌由数字组成时才转换为整数
代码(使用命令的模拟输出,以便每个人都可以复制):
其中:
[80, 0, 0, 3, 1, 0, 51, 0]
当然,这比你要求的要多。要获取第一项,只需获取此列表中的第一项,或获取带有生成器和next
的第一个令牌:
first_percent = next(int(x) for x in (y.rstrip("%") for y in output.decode("ascii").split()) if x.isdigit())