Skip to content

Instantly share code, notes, and snippets.

@pcroland
Created October 2, 2020 19:20
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save pcroland/e5c4c4bcfb4c195307e8d64738a896e7 to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
from sys import argv as Args
import datetime
def main():
filename = Args[3]
for i, arg in enumerate(Args):
if '/' in arg:
try:
Args[i] = div_arg(arg.split('/')[0], arg.split('/')[1])
except:
pass
n = divide(Args[1], Args[2])
data = get_data_from_file(filename)
final = moka(data, n)
[print(f) for f in final]
def divide(fromx, tox):
return float(fromx) / float(tox)
def div_arg(arg1, arg2):
return int(arg1) / int(arg2)
def get_data_from_file(filename):
try:
with open(filename, 'r') as file:
return [x.strip('\n') for x in file.readlines()]
except:
print('No such file')
def moka(data, n):
for i, dataline in enumerate(data):
data[i] = multiply_time(dataline, n)
return data
def multiply_time(dataline, n):
if 'NAME' in dataline: return dataline
splitted = dataline.split('=')
splitted[1] = str(convert_time(splitted[1], n))
return '='.join(splitted)
def get_millisecs(t):
hms = t.split(':')
millisecs = 0
for i, x in enumerate(hms):
if i == 0:
millisecs += int(x) * 3600000
elif i == 1:
millisecs += int(x) * 60000
elif i == 2:
millisecs += int(x.split('.')[0]) * 1000
millisecs += int(x.split('.')[1])
return millisecs
def convert_back(final_ms):
hours = int(final_ms/3600000)
minutes = int((final_ms - (hours * 3600000))/60000)
seconds = (final_ms - (hours * 3600000) - (minutes * 60000))/1000
return hours, minutes, seconds
def convert_time_back(hours, minutes, seconds):
time = ''
if len(str(hours)) != 2:
time += f'0{hours}:'
else:
time += f'{hours}:'
if len(str(minutes)) != 2:
time += f'0{minutes}:'
else:
time += f'{minutes}:'
secs = str(seconds).split('.')[0]
if len(str(seconds).split('.')[0]) != 2:
time += f'0{secs}.'
else:
time += f'{secs}.'
time += str(seconds).split('.')[1].ljust(3, '0')
return time
def convert_time(t, n):
millisecs = get_millisecs(t)
final_ms = millisecs * n
hours, minutes, seconds = convert_back(int(final_ms))
readable_time = convert_time_back(hours, minutes, seconds)
return readable_time
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment