12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # main imports
- import base64
- import json
- import re
- import argparse
- import sys, os
- import requests
- import random
- # modules imports
- sys.path.insert(0, '') # trick to enable import of main folder module
- import config as cfg
- def main():
- parser = argparse.ArgumentParser(description="Compute specific dataset for model using of metric")
- parser.add_argument('--data', type=str, help='data links to use', required=True)
- parser.add_argument('--scenes', type=int, help="number of scenes", required=True)
- parser.add_argument('--users', type=int, help="number of users of experiment", required=True)
- parser.add_argument('--output', type=str, help="output filename of user links", required=True)
- args = parser.parse_args()
- p_data = args.data
- p_scenes = args.scenes
- p_users = args.users
- p_output = args.output
- # generate link for each scene
- with open(p_data, 'r') as f:
- lines = f.readlines()
- lines = [l.replace('\n', '') for l in lines]
-
- nb_elements = len(lines)
- # check if number of scenes is higher than number of elements in data links
- if p_scenes > nb_elements:
- p_scenes = nb_elements
- # open output filename
- filename_path = os.path.join(cfg.expe_data_folder, p_output)
- if not os.path.exists(cfg.expe_data_folder):
- os.makedirs(cfg.expe_data_folder)
- output_f = open(filename_path, 'w')
- for _ in range(p_users):
- user_links = random.choices(lines, k=p_scenes)
- # generate output line
- output_line = ""
- for link in user_links:
- output_line += link + ';'
- output_line += '\n'
- output_f.write(output_line)
- output_f.flush()
-
- output_f.close()
- print("Experiment generated output file is saved into.. %s" % filename_path)
- if __name__== "__main__":
- main()
|