🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

Python

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

Q&A

解決済

1回答

1394閲覧

python Speedtestのコードについて

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/11/26 12:31

pythonで固定のサーバーに対して下りと上りの速度計測を行おうとしておりますが、down_result = stest.download()でどうしても例外が発生してしまいます。

speedtestの動作は、pingを行い最も遅延が小さいサーバーに対して下りと上り
のスピード規則を行うとのことで、私としては、常に接続先を固定にしたいと
思いと考え、servers = [28910, 20976]としましたが、この記述は間違いでしょうか?

接続先を固定にして2つの接続先に対してスピードテストを実行する方法をおしえていただけたらと思います。

python

1# 28910 fdcservers.net 2# 20976 GLBB Japan 3 4import sys 5import speedtest 6 7 8def get_speed_test(): 9 servers = [28910, 20976] 10 stest = speedtest.Speedtest() 11 # stest.get_servers(servers) # 接続先を固定にするため不要と考えました 12 # stest.get_best_server() # 接続先を固定にするため不要と考えました 13 14 15def command_line_runner(): 16 stest = get_speed_test() 17 down_result = stest.download() # 例外が発生してしまう。 18 up_result = stest.upload() 19 mbps_down_result = down_result / 1024 /1024 20 mbps_up_result = up_result / 1024 /1024 21 result = [mbps_down_result, mbps_up_result] 22 print(result) 23 24command_line_runner()

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

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

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

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

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

guest

回答1

0

ベストアンサー

stest.get_servers(servers)
とせず、
stest.get_servers()
にした場合、接続先は固定されない場合があります。

接続先を固定するには
stest.get_servers(servers)
とする必要があります。

(get_best_server()は、get_serversで指定したサーバーのpingを調べて早い方を接続先として選択します。)

例外が発生する理由は、def get_speed_test()関数が、Noneを返しているからです。(serversを指定するかどうかとは無関係)

下記のようにSpeedTestオブジェクトを返すように修正してみてください。

def get_speed_test(): servers = [28910, 20976] stest = speedtest.Speedtest() stest.get_servers(servers) # 接続先を指定する stest.get_best_server() # 指定した接続先のpingを調べてレイテンシが小さい方を選択。 return stest # 設定したSpeedTestオブジェクトを返す。 (以下略)

投稿2020/11/26 13:56

編集2020/11/27 00:16
sfdust

総合スコア1137

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

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

退会済みユーザー

退会済みユーザー

2020/11/27 00:00

ご回答ありがとうございます。 コードを以下の様に修正し実行したのですが、stest.get_bset_server()で例外が発生してしまいます。 ``` import sys import speedtest def get_speed_test(): servers = [28910, 20976] stest = speedtest.Speedtest() stest.get_servers(servers) stest.get_bset_server() return stest def command_line_runner(): stest = get_speed_test() down_result = stest.download() up_result = stest.upload() mbps_down_result = down_result / 1024 /1024 mbps_up_result = up_result / 1024 /1024 result = [mbps_down_result, mbps_up_result] print(result) command_line_runner() ```
sfdust

2020/11/27 00:16

get_bset_server→get_best_serverに修正しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問