質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4195閲覧

PythonのSpeedtestモジュール(ライブラリ)の動作について

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/11/25 14:38

pythonでインターネットへの通信速度を計測し、CSVファイルに保存しておくプログラムを作成したいと思っています。
色々調べてみると、Speedtest-cliというものがあることまでは分かり、一応、
コードをコピペし実行したところ、一応、実行でき、速度の計測はできました。

しかし、コードの内容というか、このSpeedtest-cliの関数というか、メソッドが
どういう動作を行い、どのような値が返ってくるのかなどまったく把握できない状態です。

例えば、speedtest.Speedtest()は、どのような動作をしてどのような値を返すのか。

speedtest、speedtestについての説明(ドキュメント)は、どのように見つければよいのでしょう?

下記サイトを調べてもspeedtestというモジュール(ライブラリ)は掲載されておりませせんでした。。。
https://docs.python.org/ja/3/py-modindex.html#cap-s

pythonは、便利なモジュール(ライブラリ)が沢山あるといいますが、
中身を知らないで利用するということは、良くないので、一つ一つ
理解しながら作成したいと考えております。

コピペして実行したコード

python

1import sys 2import speedtest 3 4 5def get_speed_test(): 6 servers = [] 7 stest = speedtest.Speedtest() 8 stest.get_servers(servers) 9 stest.get_best_server() 10 return stest 11 12def command_line_runner(): 13 stest = get_speed_test() 14 down_result = stest.download() 15 up_result = stest.upload() 16 mbps_down_result = down_result / 1024 /1024 17 mbps_up_result = up_result / 1024 /1024 18 result = [mbps_down_result, mbps_up_result] 19 print(result) 20 21command_line_runner()

実行結果

57.158226870187505, 87.41375687289494

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayousanz

2020/11/25 14:45

ぐぐったらhttps://github.com/sivel/speedtest-cliが出てきたのですが,こちらをお求めではないですか?
guest

回答1

0

ベストアンサー

動作の詳細はソースコードにすべて書いてあります。
さらっと見た感じ、http://www.speedtest.net/というスピード計測サイトのapiエンドポイントにリクエストを送って、得られた結果を加工しているようです。

pythonでの使用法は
https://github.com/sivel/speedtest-cli/wiki
に書いてあるようです

下記ソースの内容を見つつ簡単に説明を記述しました。
(上がコマンド、下のコメントがその説明)

import speedtest s = speedtest.Speedtest() # スピード測定用のオブジェクトを作成します。 servers = [] # サーバーIDを列挙したリストです。get_servers()関数の引数に指定します、 # 計測に使うサーバーのIDをリストで指定します。 # 指定するサーバーIDはhttps://www.speedtest.net/speedtest-servers-static.php で参照できます。 # 例:servers = [37950, 18709] threads = None # 指定した個数のスレッドを使って同時並行して計測することができます。 # シングルスレッドで計測する場合、1。 # Noneを指定した場合、speedtest.netによって自動的に設定された値が実行スレッド数としてセットされます s.get_servers(servers) # 引数に指定されたリスト内に記述されたサーバーIDを測定用サーバーに指定します。 s.get_best_server() # pingを使って一番レイテンシが小さいサーバーを測定サーバーとして指定します。 s.download(threads=threads) # ダウンロードスピードを測定し、速度をbits/秒で返します。threadsに指定した数のスレッドが使用されます。 s.upload(threads=threads) # アップロードスピードを測定し、速度をbits/秒で返します。threadsに指定した数のスレッドが使用されます。 s.results.share() # 測定結果画像の共有URLを生成します。

投稿2020/11/25 14:46

編集2020/11/25 15:39
sfdust

総合スコア1137

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/25 15:14

すいません。。。ソースコードが全く分からない状態です。。。。
退会済みユーザー

退会済みユーザー

2020/11/25 22:31

詳細な解説ありがとうございます。 一つ一つ実行して確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問