我想定期在indicator-sysmonitor中显示我的speedtest下载速度结果。
如果运行,speedtest-cli的输出将有所调整
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
有什么方法可以进一步缩小输出,直到仅降低下载速度数字?
我想定期在indicator-sysmonitor中显示我的speedtest下载速度结果。
如果运行,speedtest-cli的输出将有所调整
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
有什么方法可以进一步缩小输出,直到仅降低下载速度数字?
Answers:
与speedtest-cli
python程序和库一样,制作最小的替代程序也很容易,该程序仅执行下载测试并打印输出。
打开编辑器,另存为 dl-speedtest.py
import speedtest
s = speedtest.Speedtest()
s.get_config()
s.get_best_server()
speed_bps = s.download()
speed_mbps = round(speed_bps / 1000 / 1000, 1)
print(speed_mbps)
与 python dl-speedtest.py
这将以bps为单位给出结果,因为浮点数 Mbps按要求四舍五入到小数点后一位
我认为speedtest-cli的最低版本为1.0.0,我认为,您可能需要使用该版本pip install speedtest-cli --upgrade
进行升级。
这是一项工作awk
:
speedtest-cli --simple | awk 'NR==2{print$2}' # just the numeral
speedtest-cli --simple | awk 'NR==2{print$2" "$3}' # numeral and unit
NR==2
–走线 2
{print$2}
–打印第二列(默认情况下以空格分隔){print$2" "$3}
–打印第二列,后跟一个空格,第三列有了sed
一点复杂:
speedtest-cli --simple | sed '/D/!d;s/.* \(.*\) .*/\1/' # just the numeral
speedtest-cli --simple | sed '/D/!d;s/[^ ]* \(.*\)/\1/' # numeral and unit
/D/!d
–搜索包含D
且不(!
)d
删除它们的行,但每隔一行s/A/B/
- s
ubstitute A
与B
.*
–拿走一切[^ ]*
–占用所有非(^
)空间␣
(空格字符)–文字空间\(…\)
-将所有物品带入并保存为一组\1
–获取组1的内容
--no-upload
选项也不显示上传。