import getopt
import sys
import uuid
import hashlib
import csv
def getIds(totals,encrypt):
seed=set()
for i in range(totals):
uid=uuid.uuid1()
if encrypt:
encrypt_id=hashlib.sha256((str(uid)+"saltValue").encode("utf-8")).hexdigest()
seed.add(encrypt_id)
else: seed.add(str(uid).replace('-',''))
return seed
def gen_Datasets():
guest,host,intersect,encrypt_mode=getDataNum()
ids=list(getIds(intersect+host+guest,encrypt=encrypt_mode))
dataset_intersect=ids[:intersect]
dataset_host=ids[intersect:host]
dataset_host.extend(dataset_intersect)
dataset_guest=ids[intersect:guest]
dataset_guest.extend(dataset_intersect)
print(len(dataset_intersect),len(dataset_host),len(dataset_guest)) write_csvtb("./intersect.csv",dataset_intersect)
write_csvtb("./host_a.csv", dataset_intersect)
write_csvtb("./guest_b.csv", dataset_intersect)
print("finish all write ")
# with open("./intersect.txt","w")as i:
# for line in dataset_intersect:
# print(line)
# i.writelines(line)
# print("finish intersect========")
# with open("./host_a.txt","w") as h:
# for line in dataset_host:
# print(line)
# h.write(line)
# print("finsh host===============")
# with open("./guest_b.txt","w") as g:
# for line in dataset_guest:
# # print(line)
# g.write(line)
# print("finish guest=======")
def getDataNum():
def usage():
print("examples:-m: --help \n-e or --encrypt=: sha256\n-i or --intersect=: intersect datasets number\n-g or --guest : guest number\n -h or --host : host dataset number ")
opts, args = getopt.getopt(sys.argv[1:], '-m-i:g:h:e:', ['help', 'host=', 'guest=','intersect=','encrypt='])
guest,host,intersect=None,None,None
encrypt = False
for opt_name, opt_value in opts: if opt_name in ('-m', '--help'):
usage()
sys.exit()
if opt_name in ('-g', '--guest'):
guest = int(opt_value)
if opt_name in ('-h', '--host'):
host = int(opt_value)
if opt_name in ('-i','--intersect'):
intersect=int(opt_value)
if opt_name in('-e','--encrypt'):
if int(opt_value)==1:
encrypt=True
elif int(opt_value)==0:
encrypt=False
else:
raise ValueError("encrypt must between 0 and 1")
return guest,host,intersect,encrypt def write_csvtb(path,dt):
with open(path,"w",newline='')as f:
writer=csv.writer(f)
for i in dt:
writer.writerow([i]) if __name__ == '__main__':
gen_Datasets()

  

encypt dataset的更多相关文章

  1. HTML5 数据集属性dataset

    有时候在HTML元素上绑定一些额外信息,特别是JS选取操作这些元素时特别有帮助.通常我们会使用getAttribute()和setAttribute()来读和写非标题属性的值.但为此付出的代价是文档将 ...

  2. C#读取Excel,或者多个excel表,返回dataset

    把excel 表作为一个数据源进行读取 /// <summary> /// 读取Excel单个Sheet /// </summary> /// <param name=& ...

  3. DataTable DataRow DataColumn DataSet

    1.DataTable 数据表(内存) 2.DataRow DataTable 的行 3.DataColumn DataTable 的列 4.DataSet 内存中的缓存

  4. C# DataSet装换为泛型集合

    1.DataSet装换为泛型集合(注意T实体的属性其字段类型与dataset字段类型一一对应) #region DataSet装换为泛型集合 /// <summary> /// 利用反射和 ...

  5. 读取Simulink中Dataset类型的数据

    http://files.cnblogs.com/files/pursuiting/%E5%80%92%E7%AB%8B%E6%91%86%E6%8E%A7%E5%88%B6%E7%B3%BB%E7% ...

  6. RDD/Dataset/DataFrame互转

    1.RDD -> Dataset val ds = rdd.toDS() 2.RDD -> DataFrame val df = spark.read.json(rdd) 3.Datase ...

  7. asp.net dataset 判断是否为空 ?

    1,if(ds == null) 这是判断内存中的数据集是否为空,说明DATASET为空,行和列都不存在!! 2,if(ds.Tables.Count == 0) 这应该是在内存中存在一个DATASE ...

  8. C#遍历DataSet中数据的几种方法总结

    //多表多行多列的情况foreach (DataTable dt in YourDataset.Tables) //遍历所有的datatable{foreach (DataRow dr in dt.R ...

  9. c#解析XML到DATASET及dataset转为xml文件函数

    //将xml对象内容字符串转换为DataSet         public static DataSet ConvertXMLToDataSet(string xmlData)         { ...

随机推荐

  1. input的number类型只能输入正数,禁止负数输入

    <input type="number" max="10" min='1' id='number'> <script> document ...

  2. Euler Sums系列(六)

    \[\Large\displaystyle \sum_{n=1}^{\infty}\frac{H_{2n}}{n(6n+1)}\] \(\Large\mathbf{Solution:}\) Let \ ...

  3. eclipse从svn导入静态文件

    1.从eclipse 选择 导入 2.选择仓库和项目,选择finish 3.选择project项目导出

  4. 多核 CPU 和多个 CPU 有何区别?

    原文来自:http://www.solves.com.cn/it/yj/CPU/2019-06-24/1122.html 多核CPU和多CPU的区别主要在于性能和成本.多核CPU性能最好,但成本最高: ...

  5. Httpclient 工具类(get,put)

    package com.googosoft.until; import java.io.IOException; import org.apache.http.HttpEntity; import o ...

  6. OBS_Classic经典版框架

    一,简介 OBS(open boardcast server),是一个用于直播的开源软件. 官方网站:https://obsproject.com/ 代码托管地址:https://github.com ...

  7. 妙用python之编码转换

    转自i春秋 文章难易度:★★ 知识点:python.编码转换 前 言 在日常渗透,漏洞挖掘,甚至是CTF比赛中,会遇到各种编码,常常伴随着这些编码之间的各种转换.记得刚入门那个时候,自己处理编码转换问 ...

  8. oss创建文件夹

    在进行putObject时,第二个参数写成path/your-object即可

  9. Mysql2docx自动生成数据库说明文档

    [需要python3.0以上] 首先安装Mysql2docx,如下: pip install Mysql2docx 然后打开pycharm,新建test.py # python from Mysql2 ...

  10. 进程池与线程池、协程、协程实现TCP服务端并发、IO模型

    进程池与线程池.协程.协程实现TCP服务端并发.IO模型 一.进程池与线程池 1.线程池 ''' 开进程开线程都需要消耗资源,只不过两者比较的情况下线程消耗的资源比较少 在计算机能够承受范围内最大限度 ...