Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # more info here:
- # http://raspberrypibeginner.wordpress.com/
- import time
- start_time = time.time()
- import re
- print time.time() - start_time, "seconds after regex load"
- import scitools.aplotter
- print time.time() - start_time, "seconds after plot load"
- import csv
- print time.time() - start_time, "seconds after csv load"
- import datetime
- print time.time() - start_time, "seconds after datetime load"
- data_input_path = '/media/USBHDD/PythonStudy/torrent_data_collection/data_one.csv'
- # later add: /media/USBHDD/PythonStudy/torrent_data_collection/
- time_string_axis = []
- upload_bytes_axis = []
- # Constant
- current_time_obj = datetime.datetime.now()
- # Gathering data simply
- with open(data_input_path, 'rb') as csvfile:
- raw_torrenting_data = csv.reader(csvfile, delimiter=',')
- # print time.time() - start_time, "seconds before regex"
- for data_array in raw_torrenting_data:
- for each_entry in data_array:
- parse_data_point = re.search(r'(\d+-\d\d-\d\d\s\d\d:\d\d:\d\d)\$(\d+)', each_entry)
- # time = parse_data_point.group(1)
- # uploaded_bytes = parse_data_point.group(2)
- # print type(parse_data_point)
- if str(type(parse_data_point)) == "<type '_sre.SRE_Match'>":
- time_string_axis.append(parse_data_point.group(1))
- upload_bytes_axis.append(parse_data_point.group(2))
- # print time.time() - start_time, "seconds after regex"
- def make_time_obj(string_a):
- # turn each string in time_string_axis into a time object
- return datetime.datetime.strptime(string_a, '%Y-%m-%d %X')
- def convert_timestrings_to_hours_ago(array_of_strings):
- difference_array = []
- for time_string in array_of_strings:
- diff_obj = current_time_obj - make_time_obj(time_string)
- # plus 4 because of UTC, other object was created
- # with incompattible gmtime, this is the easiest conversion
- hour_difference = (4 + diff_obj.days * 24 + (diff_obj.seconds/3600.))
- difference_array.append(float('%.2f' % hour_difference))
- return difference_array
- # print sorted(time_string_axis) == time_string_axis
- # print convert_timestrings_to_hours_ago(time_string_axis)
- # for ea in convert_timestrings_to_hours_ago(time_string_axis):
- # print type(ea)
- def convert_bytes_to_mb(string_number):
- return float(string_number) / 1048676.0
- def upload_derivative_mb(array_of_string_nums):
- # print time.time() - start_time, "seconds before list subtraction"
- derivative_mb = []
- original_data = array_of_string_nums[1:]
- offset_data = array_of_string_nums[:-1]
- for index in xrange(0,len(original_data)):
- change = float(original_data[index]) - float(offset_data[index])
- derivative_mb.append(convert_bytes_to_mb(change))
- derivative_mb.insert(0, 0.0)
- # print len(original_data), len(offset_data)
- return derivative_mb
- # print time.time() - start_time, "seconds after list subtraction"
- # print upload_derivative_mb(upload_bytes_axis)
- def sizeof_fmt(num):
- """
- from:
- http://stackoverflow.com/questions/1094841/reusable-
- library-to-get-human-readable-version-of-file-size
- """
- for x in ['bytes','KB','MB','GB','TB']:
- if num < 1024.0:
- return "%3.1f %s" % (num, x)
- num /= 1024.0
- def last_xhours_total(num):
- return sizeof_fmt(int(upload_bytes_axis[-1]) - int(upload_bytes_axis[-(num*6 + 1)]))
- # print len(upload_derivative_mb(upload_bytes_axis)), len(convert_timestrings_to_hours_ago(time_string_axis))
- # print len(time_string_axis), len(upload_bytes_axis)
- def graph_last_day():
- y_axis = upload_derivative_mb(upload_bytes_axis)
- x_axis = convert_timestrings_to_hours_ago(time_string_axis)
- x = x_axis[-145:-1]
- y = y_axis[-145:-1]
- scitools.aplotter.plot(x, y)
- print graph_last_day()
- print last_xhours_total(24) + " uploaded in the last 24 hours"
- print "computation time:"
- print time.time() - start_time, "seconds"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement