我试图将变量调用到文件路径中,但我无法得到它。
file-path mean is =“/sys/class/net/bond0/speed
”,其中“bond0
”是动态的。
在下面的代码中,Current_inf
正在生成类似“bond0
”等的值,可更改。
>>> import subprocess
>>> import netifaces
>>> import socket
>>> import re
>>> Current_inf = netifaces.gateways()['default'][netifaces.AF_INET][1]
>>> print Current_inf
bond0.180
>>> subprocess.Popen(str['/sys/class/net/%s%s'(Current_inf)/speed])
下面是shell命令我想通过python
实现的
# cat /sys/class/net/bond0/speed
2000
任何帮助或建议将不胜感激。
答案 0 :(得分:0)
首先,您不需要Popen
,需要check_output
才能直接获得结果。
其次,您正在尝试转换list
中的str
(不确定,因为str[...]
是无效的语法)。删除str
第三,这不是你使用%
格式化字符串的方式(你也可以使用str.format
,这样更好)
我的建议:
speed = subprocess.check_output('/sys/class/net/%s/speed' % (Current_inf)).rstrip()
成功执行后,speed
保留返回值减去尾随换行符(感谢rstrip()
)
答案 1 :(得分:0)
这是我原来的问题的解决方案:
subprocess.check_output(['cat', '/sys/class/net/{}/speed'.format(Current_inf)])
oR
open('/sys/class/net/{}/speed' .format(Current_inf)).read().strip()