掘金 后端 ( ) • 2021-07-06 16:35
.markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px;padding-bottom:5px}.markdown-body h1{font-size:30px;margin-bottom:5px}.markdown-body h2{padding-bottom:12px;font-size:24px;border-bottom:1px solid #ececec}.markdown-body h3{font-size:18px;padding-bottom:0}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:15px}.markdown-body h6{margin-top:5px}.markdown-body p{line-height:inherit;margin-top:22px;margin-bottom:22px}.markdown-body img{max-width:100%}.markdown-body hr{border:none;border-top:1px solid #ddd;margin-top:32px;margin-bottom:32px}.markdown-body code{word-break:break-word;border-radius:2px;overflow-x:auto;background-color:#fff5f5;color:#ff502c;font-size:.87em;padding:.065em .4em}.markdown-body code,.markdown-body pre{font-family:Menlo,Monaco,Consolas,Courier New,monospace}.markdown-body pre{overflow:auto;position:relative;line-height:1.75}.markdown-body pre>code{font-size:12px;padding:15px 12px;margin:0;word-break:normal;display:block;overflow-x:auto;color:#333;background:#f8f8f8}.markdown-body a{text-decoration:none;color:#0269c8;border-bottom:1px solid #d1e9ff}.markdown-body a:active,.markdown-body a:hover{color:#275b8c}.markdown-body table{display:inline-block!important;font-size:12px;width:auto;max-width:100%;overflow:auto;border:1px solid #f6f6f6}.markdown-body thead{background:#f6f6f6;color:#000;text-align:left}.markdown-body tr:nth-child(2n){background-color:#fcfcfc}.markdown-body td,.markdown-body th{padding:12px 7px;line-height:24px}.markdown-body td{min-width:120px}.markdown-body blockquote{color:#666;padding:1px 23px;margin:22px 0;border-left:4px solid #cbcbcb;background-color:#f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px 0}.markdown-body ol,.markdown-body ul{padding-left:28px}.markdown-body ol li,.markdown-body ul li{margin-bottom:0;list-style:inherit}.markdown-body ol li .task-list-item,.markdown-body ul li .task-list-item{list-style:none}.markdown-body ol li .task-list-item ol,.markdown-body ol li .task-list-item ul,.markdown-body ul li .task-list-item ol,.markdown-body ul li .task-list-item ul{margin-top:0}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:3px}.markdown-body ol li{padding-left:6px}.markdown-body .contains-task-list{padding-left:0}.markdown-body .task-list-item{list-style:none}@media (max-width:720px){.markdown-body h1{font-size:24px}.markdown-body h2{font-size:20px}.markdown-body h3{font-size:18px}}
import base64
import time
import traceback
import urllib.request
import gevent
from gevent import monkey
import sys
monkey.patch_all()
import schedule
from gevent import pool
from pymongo import MongoClient
from datetime import datetime, timedelta
import logging
import json
import requests
import os
import uuid
from PIL import Image
import io
from loguru import logger
 
 
client = MongoClient('mongodb://username:[email protected]:27017/')
 
# 库 - database
client_db = client['data_base']
 
# 表 - collection
temp_data_col = client_db['temp_data']
 
 
def work_func():
    # 检索条件
    mongo_condition_dict = {
        "create_time": {"$gte": "2021-04-15T00:37:46.110000"}
    }
 
    # 过滤返回的字段
    filter_colum_dict = {
        "_id": 0, "username": 1, "password": 1
    }
 
    detail_list =temp_data_col.find(mongo_condition_dict, filter_colum_dict).batch_size(2000)
 
    logger.info('Start search Count Is {}'.format(detail_list.count()))
    temp_data_set = set()
    for detail_info indetail_list:
        logger.info(f"detail_info = {detail_info}")
        username, password = detail_info["username"], detail_info["password"]
        temp_data_set.add(username + '----' + password)
 
    logger.info(f"查询到数据: = {temp_data_set}")
    logger.info(f"查询到总数: = {len(temp_data_set)}")
    
    # 按行写入文件,如何优化?一次打开,按行写入 - 待优化
    for data in temp_data_set:
        with open('./temp.txt', 'a') as f:
            f.write(data + '\n')
 
 
if __name__ == '__main__':
 
   work_func()
复制代码