<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hynkoala的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hynkoala</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hynkoala]]></copyright><item><title><![CDATA[c#程序发送邮件——以163邮箱为例]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/112678464</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/112678464</guid><author>hynkoala</author><pubDate>Fri, 15 Jan 2021 17:09:35 +0800</pubDate><description><![CDATA[发送邮件——以163邮箱为例
测试及问题排查
使用系统包：System.Net.Mail SmtpClient工具
测试代码：
public static void SendTest() {
            MailMessage msg = new MailMessage();
            msg.Subject = "测试";   //标题
            msg.Body = " 测试,测试";    //内容
            msg.From = new Mail]]></description><category></category></item><item><title><![CDATA[C#异步编程Async await实践与理解]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/108100242</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/108100242</guid><author>hynkoala</author><pubDate>Wed, 19 Aug 2020 14:40:30 +0800</pubDate><description><![CDATA[真理：

方法中没有await的异步方法实质上是一个同步的方法
异步方法本身不会创建新的线程，但一般实现异步需要有新的线程去做一些事情
同一个异步方法中多个await的代码是同步执行的

异步方法实践

本文示例通过Test工程展现，控制台程序同理

初识异步的困惑&amp;解惑
为啥我写的异步没用？还是同步执行的？
[TestClass]
    public class AsyncTest
    {
        [TestMethod]
        public void Main()
   ]]></description><category></category></item><item><title><![CDATA[时序数据库Influxdb安装使用问题与c#客户端]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/107089666</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/107089666</guid><author>hynkoala</author><pubDate>Thu, 02 Jul 2020 17:43:43 +0800</pubDate><description><![CDATA[安装与使用
docker 安装：docker run influxdb -d --name influxdb -p8086:8086 influxdb
交互式
进入docker容器：使用influx命令，会进入交互模式，并显示当前版本；
// 创建数据库
create database Test
// 显示当前所有存在的数据库
show databases
// 进入数据库
use Test
// 创建表——插入数据时直接创建表和字段
// 插入数据
insert test,Name=hyn,Sex=man]]></description><category></category></item><item><title><![CDATA[Julia安装、镜像库配置并集成到Jupyter]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/106904939</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/106904939</guid><author>hynkoala</author><pubDate>Mon, 22 Jun 2020 16:47:54 +0800</pubDate><description><![CDATA[安装
安装Julia
直接到官网下载对应版本，进行傻瓜式安装即可。
安装Jupyter
python环境下，直接通过pip install Jupyter安装即可
Julia配置国内镜像库
Julia安装各种包时需要使用镜像库，如果使用原生的镜像库（PkgMirrors），速度会非常的慢，甚至连原生的镜像库也需要安装，安装方法为：
import Pkg
Pkg.add("PkgMirrors")
# ....无尽的等待（可能伴随着失败）

你会发现安装这个镜像库也是非常的慢，好在国内有镜像库可用， 只需要设]]></description><category></category></item><item><title><![CDATA[VS进行单元测试时运行和调试下结果不一致]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/106804408</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/106804408</guid><author>hynkoala</author><pubDate>Wed, 17 Jun 2020 11:57:10 +0800</pubDate><description><![CDATA[原因：不明，可能是运行和调试模式下走的不同的源代码，两边源代码不一致？
解决办法：很简单，重新生成下解决方案即可！

]]></description><category></category></item><item><title><![CDATA[wxPython中进行strptime字符串转时间时报ValueError(unknown locale: zh-CN)]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/106102922</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/106102922</guid><author>hynkoala</author><pubDate>Wed, 13 May 2020 17:35:36 +0800</pubDate><description><![CDATA[在wxPython app中进行字符串转时间：datetime.strptime(‘2020-02-02 02:02:02’,’%Y-%m-%dT%H:%M:%S’)，此时报下面错误：
ValueError(unknown locale: zh-CN)
而命令行直接通过main方法run时则无问题。
解决方法：
在调用strptime前先设置locale：
import locale
import datetime.datetime
locale.setlocale(locale.LC_ALL, '')
d]]></description><category></category></item><item><title><![CDATA[python推送消息到钉钉群组]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/105432573</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/105432573</guid><author>hynkoala</author><pubDate>Fri, 10 Apr 2020 14:15:43 +0800</pubDate><description><![CDATA[首先在给群组创建机器人，机器人通过关键字验证，设置关键字为Notice
完整代码
"""
推送钉钉消息到群组工具
"""
import json
import requests


class MessageBody(object):
    """ 推送消息内容体
    """

    def __init__(self, title="", msg=""):
        """初始化一...]]></description><category></category></item><item><title><![CDATA[python基于apscheduler的BlockingScheduler实现间隔执行和定时执行的定时器]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/105416784</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/105416784</guid><author>hynkoala</author><pubDate>Thu, 09 Apr 2020 18:16:37 +0800</pubDate><description><![CDATA[完整代码
"""
定时器
"""
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
import typing

class IntervalScheduler():
    """[summary]隔一段时间执行一次的定时器
    """
    def __init__(self,fun...]]></description><category></category></item><item><title><![CDATA[C#中使用rabbit MQ实现消息的发布与实时订阅接收(发布/订阅模式)]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/100044025</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/100044025</guid><author>hynkoala</author><pubDate>Fri, 23 Aug 2019 18:17:33 +0800</pubDate><description><![CDATA[业务目的
rabbit MQ简单的功能是生产者生产一条消息发送到MQ的队列中，然后消费者去队列中取。然而什么时候发布了消息，消费者是不知道的，这对于实时性要求很高的业务场景，就不太适应。如果能够在生产者生产消息后，消费者能立即知道消息的产生并去消费，那就太好了。Rabbit MQ的“发布/订阅”模式实现了这一点。
基本模式为：
生产者发布消息，消费者订阅消息。
其实类似消息队列一般有以下多种模式：...]]></description><category></category></item><item><title><![CDATA[pandas模块实现excel文件的批量读取与保存工具]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/95966902</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/95966902</guid><author>hynkoala</author><pubDate>Mon, 15 Jul 2019 14:47:31 +0800</pubDate><description><![CDATA[import os.path
import time
import pandas as pd
from util import logger
LOGGER = logger.MyLogger(“excelUtils”).getLogger()
class ExcelReader:
“”"
读取excel工具
“”"
def __init__(self, path, file_suffix=".xl...]]></description><category></category></item><item><title><![CDATA[常用python高阶函数解析]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/94006223</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/94006223</guid><author>hynkoala</author><pubDate>Fri, 28 Jun 2019 15:18:24 +0800</pubDate><description><![CDATA[一个函数就可以接收另一个函数作为参数，这种函数就称之为高阶函数。
map(fun_name,L)
map()函数接收两个参数，一个是函数，一个是Iterable，map将传入的函数依次作用到序列的每个元素，并把结果作为新的Iterator返回。
例如：
L = [1, 2, 3]
def int_to_str(L):
    return map(str, L)
print(list(int_to...]]></description><category></category></item><item><title><![CDATA[python中日期和时间格式转换]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/94005970</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/94005970</guid><author>hynkoala</author><pubDate>Fri, 28 Jun 2019 15:16:06 +0800</pubDate><description><![CDATA[datetime
首先，datetime时一个模块，datetime模块还包含一个datetime类，from datetime import datetime才是导入了datetime这个类
获取指定日期和时间
直接通过datetime的构造方法，传入年月日时分秒即可
print(datatime(2018,8,8,8,8,8))
结果为：2018-08-08 08:08:08
datetime...]]></description><category></category></item><item><title><![CDATA[python中编写单元测试]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/94005843</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/94005843</guid><author>hynkoala</author><pubDate>Fri, 28 Jun 2019 15:15:14 +0800</pubDate><description><![CDATA[在python中编写单元测试需要引入unittest模块
首先创建一个service，简单的用于计算求和
def add(num1, num2):
    result = None
    try:
        float(num1)
        float(num2)
        result = num1 + num2
    except ValueError:
       ...]]></description><category></category></item><item><title><![CDATA[linux系统（ubuntu）上安装部署docker容器]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/94005630</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/94005630</guid><author>hynkoala</author><pubDate>Fri, 28 Jun 2019 15:14:16 +0800</pubDate><description><![CDATA[需要先安装虚拟机以部署linux系统，虚拟机本次使用VMware，下载安装都较为简单，此文不再赘述。
下载Ubuntu系统：https://ubuntu.com/download/desktop
Ubuntu系统在VMware上的安装很简单，直接在VMware上选择刚刚下载的iso镜像创建虚拟机即可
更新apt包索引：
sudo apt-get update

使用apt命令可能出现下面报错：
E...]]></description><category></category></item><item><title><![CDATA[logging模块实现自定义的日志打印与保存工具]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/93895169</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/93895169</guid><author>hynkoala</author><pubDate>Thu, 27 Jun 2019 18:15:02 +0800</pubDate><description><![CDATA[示例代码：
import logging
import os.path
import time
# 首先重建一个logger对象
logger = logging.getLogger("test")
# 设置logger的等级
# 等级的设定既可以直接设置大写的英文，也可以设置为logging模块的内置属性，python会自动进行转换判断
# logger.setLevel("DEBUG")
lo...]]></description><category></category></item><item><title><![CDATA[python文件和目录操作及文件的读写]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/93895100</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/93895100</guid><author>hynkoala</author><pubDate>Thu, 27 Jun 2019 18:14:16 +0800</pubDate><description><![CDATA[python os模块——用于文件和目录的操作
python内置的os模块可以直接调用操作系统提供的接口函数
os.environ ——获取系统的环境变量（os.environ.get(“key”)）
获取绝对路径：os.path.abspath()
获取相对路径：os.path.realpath()
获取当前工程的初始目录：os.getcwd()
获取当前目录（正斜杠）：logger.info(...]]></description><category></category></item><item><title><![CDATA[python中多进程及multiprocessing进程池使用——批量读取excel文件]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/93895004</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/93895004</guid><author>hynkoala</author><pubDate>Thu, 27 Jun 2019 18:13:33 +0800</pubDate><description><![CDATA[首先准备:当前文件上级目录下有个excels目录，目录里存在15份.xls文件，每个文件1000条数据，需要通过多进程对这些文件读取为pandas的dataframe格式
手动创建多进程读取文件（进程数等于任务数）
# @datetime:6/26/0026
"""通过多进程加速读取excel的测试"""
__author__ = "hanyaning@deri.energy"
import os...]]></description><category></category></item><item><title><![CDATA[浅析python多线程及ThreadPoolExecutor的使用及问题]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/93894955</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/93894955</guid><author>hynkoala</author><pubDate>Thu, 27 Jun 2019 18:12:37 +0800</pubDate><description><![CDATA[首先上一个多线程获取多个excel数据为dataFrame的例子
前言：
本此测试数据为120个excel文件，每个文件1000条数据，共120000条数据需要读取
直接创建线程与使用线程池对比
1. 直接依任务数创建线程
# @datetime:6/27/0027
"desc"
__author__ = "hanyaning@deri.energy"
import threading
impor...]]></description><category></category></item><item><title><![CDATA[使用django实现前后台交互helloworld Demo]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/91492474</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/91492474</guid><author>hynkoala</author><pubDate>Wed, 12 Jun 2019 11:28:36 +0800</pubDate><description><![CDATA[使用django实现前后台交互helloworld Demo
django是使用python语言编写的专用于搭建python web服务的mvc框架，使用它可以很方便的进行前后端交互。
django安装
直接使用python pip工具：命令行窗口使用pip install django命令即可完成安装，安装完成后需要将django的相关工具所在位置添加到环境变量中以便后续使用。
环境变量：有两个...]]></description><category></category></item><item><title><![CDATA[python中使用Redis]]></title><link>https://blog.youkuaiyun.com/hynkoala/article/details/91443962</link><guid>https://blog.youkuaiyun.com/hynkoala/article/details/91443962</guid><author>hynkoala</author><pubDate>Tue, 11 Jun 2019 15:58:58 +0800</pubDate><description><![CDATA[redis——no sql and no relative
ide：pyCharm
需要先安装部署python和redis环境
新建python工程，简单python目录结构为：

安装redis包：（第一次使用时）
view——toolwindow——Terminal：使用pip工具安装
pip install redis
编写python代码测试：
# coding:utf-8
import ...]]></description><category></category></item></channel></rss>