我想定期在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-clipython程序和库一样,制作最小的替代程序也很容易,该程序仅执行下载测试并打印输出。
打开编辑器,另存为 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/- substitute A与B.* –拿走一切[^ ]*–占用所有非(^)空间␣ (空格字符)–文字空间\(…\) -将所有物品带入并保存为一组\1 –获取组1的内容
--no-upload选项也不显示上传。