如何使用python脚本获取MacOS笔记本电脑的电池百分比?

时间:2018-06-07 21:58:28

标签: python subprocess

我们可以使用shell命令pmset来获取Mac计算机的电源管理设置。

例如找到电池百分比:

pmset -g batt | grep -Eo "\d+%" | cut -d% -f1

提供笔记本电脑的电池百分比。

当我使用os.system命令在python中运行相同的命令时,它运行正常并打印电池百分比。问题是我们无法从终端获得输出。

# This runs fine
os.system('pmset -g batt | grep -Eo "\d+%" | cut -d% -f1')

当我使用subprocess.check_output时,它失败了同一个命令:

# This fails
subprocess.check_output('pmset -g batt | grep -Eo "\d+%" | cut -d% -f1')

这是我的尝试:

#!python
import subprocess
import os

# This runs fine.
cmd = "date"
returned_output = subprocess.check_output(cmd).decode("utf-8")
# print('Current date is:', returned_output)

# This runs fine.
cmd = 'pmset -g batt | grep -Eo "\d+%" | cut -d% -f1'
os.system(cmd)

# This fails
cmd = 'pmset -g batt | grep -Eo "\d+%" | cut -d% -f1'
returned_output = subprocess.check_output(cmd)
print('Battery percentage:', returned_output.decode("utf-8"))

错误日志

FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pmset -g batt': '/usr/bin/pmset -g batt'

问题如何使这条线路正常工作?

subprocess.check_output('pmset -g batt | grep -Eo "\d+%" | cut -d% -f1')

1 个答案:

答案 0 :(得分:0)

我找到了一种使用Copy if newer方法的方法,由于安全原因这不太好。

ch = pyodbc.connect( 'DRIVER={SQL Server};SERVER=xxxx;DATABASE=xxx;Trusted_Connection=True' )
cur = ch.cursor()

x = 123

SQL_Commands = 'CREATE TABLE table_' +  str( x )  +  '''    
(
  id int IDENTITY(1,1) PRIMARY KEY,
  obj varchar(max) NOT NULL
) '
'''

cur.execute( SQL_Commands ).commit()