Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Importing necessary library
- import speedtest
- import time
- import datetime
- import msvcrt
- import csv
- import os
- fn_ts = time.time()
- fn_st = datetime.datetime.fromtimestamp(fn_ts).strftime('%Y-%m-%d_%H-%M-%S')
- print(fn_st)
- #path and filename
- desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
- file_name = desktop + '\\' + fn_st + '_speedtest.csv'
- print(file_name)
- #create csv file
- header = ['timestamp', 'download', 'upload', 'ping', 'server', 'country']
- with open(file_name, 'w', encoding='UTF8', newline='') as f:
- writer = csv.writer(f)
- # write the header
- writer.writerow(header)
- print(f'file created: {file_name}')
- #start loop to continiously write speed tests into a text file
- i = 0
- while True:
- i = i + 1
- #start speed test
- test = speedtest.Speedtest()
- print("Loading server List...")
- test.get_servers()
- print("Choosing best server...")
- best = test.get_best_server()
- host = best['host']
- country = best['country']
- print(f"Found: {host} located in {country}")
- print("Performing download test...")
- download_result = test.download()
- print("Performing upload test...")
- upload_result = test.upload()
- print("Performing ping test...")
- ping_result = test.results.ping
- #creat strings and convert into mbit/s
- mbits_download = round(download_result/1024/1024,2)
- mbits_upload = round(upload_result/1024/1024,2)
- ms_ping = round(ping_result,2)
- string_download = f'Download speed: {mbits_download} Mbit/s'
- string_upload = f'Upload speed: {mbits_upload} Mbit/s'
- string_ping = f'Ping: {ping_result} ms'
- print(string_download)
- print(string_upload)
- print(string_ping)
- #speed test is finished
- ts = time.time()
- st = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
- #append data to csv file
- data = [st, mbits_download, mbits_upload, ms_ping, host, country]
- with open(file_name, 'a', encoding='UTF8', newline='') as f:
- writer = csv.writer(f)
- # write the data
- writer.writerow(data)
- # exit script with "enter"
- print('-------------\n')
- if msvcrt.kbhit():
- if msvcrt.getwche() == '\r':
- break
- time.sleep(5)
- print(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement