如何将变量调用到文件路径并在python 2.7中打印输出

时间:2017-05-22 18:38:05

标签: python python-2.7

我试图将变量调用到文件路径中,但我无法得到它。

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

任何帮助或建议将不胜感激。

2 个答案:

答案 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()