def read_file(self):
     """
     通过路径读取文件并且转换为list[Access]
     如果路径不是文件,抛出异常
     """
     try:
         context = self.__file_check__("rb").read()
         decrypted = AES_Encrypt().decrypt_by_aes(context, self.password)
         access_list = []
         for access in json.loads(decrypted):
             access_list.append(
                 Access(access["tag"], access["username"],
                        access["password"], access["url"]))
     except (IOError, ValueError, KeyError):
         raise
     return access_list
Exemple #2
0
 def __show__(self, source):
     result = ""
     if source:
         access_list = [Access("标签", "用户名", "密码", "网址")]
         if type(source) is list:
             access_list += source
         elif type(source) is Access:
             access_list.append(source)
         # 找到每个列最长的属性,用来确定列宽
         columns = [0, 0, 0, 0]
         for access in access_list:
             loop = 0
             # 每个半角空格作为一个长度单位,汉字的长度单位是两个,所以长度为字符串长度+汉字的个数
             for v in access.__dict__.values():
                 length = len(v) + len(re.findall(u"[\u4e00-\u9fa5]", v))
                 if length > columns[loop]:
                     columns[loop] = length
                 loop += 1
         columns = [i + 4 for i in columns]
         # 生成打印字符串
         result = ""
         for access in access_list:
             for i in columns:
                 result += "+" + "—" * i
             result += "+\n"
             loop = 0
             for v in access.__dict__.values():
                 length = len(v) + len(re.findall(u"[\u4e00-\u9fa5]", v))
                 temp = (columns[loop] - length) / 2
                 left = int(temp)
                 right = math.ceil(temp)
                 result += "|" + " " * left + str(v) + " " * right
                 loop += 1
             result += "|\n"
         for i in columns:
             result += "+" + "—" * i
         result += "+\n"
     print(result)
            self.__file_check__("wb").write(encrypted)
        except IOError as e:
            raise e

    def __file_check__(self, file_mode: str):
        try:
            file_obj = open(self.file_path, file_mode)
        except IOError as e:
            raise e
        return file_obj


if __name__ == "__main__":
    converter = File_Converter(r"PasswordManger\test", "FuckYou")

    # 生成数据并写入文件
    access_list = [
        Access("tag{0}".format(i), "username{0}".format(i),
               "password{0}".format(i), "url{0}".format(i))
        for i in range(1, 11)
    ]
    converter.write_file(access_list)
    # 读取数据并打印
    access_list = converter.read_file()
    for access in access_list:
        print("tag:{tag},username:{username},password:{password},url:{url}".
              format(tag=access.tag,
                     username=access.username,
                     password=access.password,
                     url=access.url))
Exemple #4
0
import multiprocessing
import threading
import tensorflow as tf
from Access import Access
from Framework import ExplorerFramework

NUMS_CPU = multiprocessing.cpu_count()
state_size = 4
action_size = 2

tf.reset_default_graph()
sess = tf.Session()
with tf.device("/cpu:0"):
    A = Access(state_size, action_size)
    F_list = []
    for i in range(NUMS_CPU):
        F_list.append(ExplorerFramework(A, 'W%i' % i, state_size, action_size))

    COORD = tf.train.Coordinator()
    sess.run(tf.global_variables_initializer())

    threads_list = []
    for ac in F_list:
        job = lambda: ac.run(sess)
        t = threading.Thread(target=job)
        t.start()
        threads_list.append(t)
    COORD.join(threads_list)