python杂记

python杂记

邮件发送

邮件发送使用的是smtplib.SMTP 这个包,使用范例如下:

from smtplib import SMTP as smtp

Send = "邮件名"
Password = "密码"
Subject = "主题"

# 需要发送的内容消息
text = MIMEText(Msg, _charset="UTF-8")
text["From"] = Send
text["To"] = ""   # 邮件接收方
text["Subject"] = Subject

s = smtp("smtp.163.com", 25)   
try:
    s.login(Send, Password)   # 连接
    s.sendmail(Send, self.to, text.as_string())    # 发送邮件
except Exception as e:
    raise e

文件简单操作

文件操作使用的是shutilos 关于文件的操作,示例为:

import shutil
import os

shutil.move("源文件地址", "目的地址")    # 移动文件
os.remove("文件地址")           # 删除文件

日志文件生成

日志文件的简单使用范例:

import logging

# 日志格式
LOG_FORMAT = "%(asctime)s***%(levelname)s***%(filename)s->%(lineno)d***%(message)s"
# 时间格式
DATE_FORMAT = "%m/%d/%Y %H:%M:%S"
# 日志格式配置 只生效一次
logging.basicConfig(filename='my.log', level=logging.DEBUG,
                    format=LOG_FORMAT, datefmt=DATE_FORMAT)
# 输出日志信息
logging.error(e)

时间日期操作

时间操作利用的是datetime 模块下的两个类。其中的date 是简单的时间类,只有年,月,日。timedelta 是表示的日期与日期之间的跨度,支持基本的四则运算。

timedelta = date1 - date2    # timedelta是date1与date2之间的时间跨度
date2 = date1 + timedelta	 # 
timedelta1 = timedelta2 + timedelta3  # 时间的四则运算

date.today() + timedelta(-1)   # 昨天的日期

多线程

多线程使用的是threading 模块,该模块除了Thread这个类以外,还有许多同步机制。使用Thread类的方法主要有三种:

  • 创建一个Thread实例,传给它一个参数
  • 创建一个Thread实例,传给它一个可调用的类实例
  • 派生一个Thread子类,并创建子类的实例

这里介绍第三个方法:

from threading import Thread

class _Thread(Thread):
    """
    继承Thread类,自动创建线程
    """

    def __init__(self, ftp_url):
        Thread.__init__(self)
   		pass

    def run(self):
        """
        调用线程start后将执行的部分
        """
        _run()
      	pass

    def _run(self):
        """
        实际需要执行的内容
        """
        pass
    
if __name__ == "__main__":
    x = _Thread()    # 创建实例
    x.start()        # 运行实例
    
    x.join()        # 等待线程结束

执行系统命令

执行系统命令使用模块subprocess ,该模块能替代以前版本的调用系统命令函数。改方法的使用范例为:

import subprocess

x = subprocess.run("需要执行的命令", shell=True, stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE, universal_newlines=True)
# stdout=subprocess.PIPE输出管道
# stderr=subprocess.PIPE错误管道

# 获取命令的返回码,如果不是0,将抛出错误
try:
    x.check_returncode()
    pass        # 命令成功执行
except subprocess.CalledProcessError as e:
    return x.returncode    # 命令非正常退出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值