import sys
import os
print("打印当前脚本文件路径:",__file__)
print("dirname只保留目录名:",os.path.dirname(__file__))
base_path = os.path.dirname(os.path.dirname(__file__))
sys.path.append(base_path)
import first_mode
1、得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()
2、返回指定目录下的所有文件和目录名: os.listdir()
3、用来删除一个文件: os.remove()
4、删除多个目录: os.removedirs (r"c : \python" )
5、检验给出的路径是否是一个文件: os.path.isfile(名称)
6、检验给出的路径是否是一个目录: os.path.isdir(名称)
7、检验给出的路径是否真的存在: os.path.exists(名称)
8、获取路径名: os.path.dirname(path)
9、获得绝对路径: os.path.abspath(path)
10、获取文件名: os.path.basename(path)
11、运行shell命令: os.system()
12、重命名: os.rename(old,new)
13、创建多级目录: os.makedirs ( r“c : \python\test" )
14、创建单个目录: os.mkdir ( "test" )
15、获取文件属性: os.stat ( file )
16、获取文件大小: os.path.getsize ( filename )
1、获取系统环境变量: sys.path
2、获取脚本的参数: sys.argv
我们写程序时对时间的处理可以归为以下3种:
时间的显示,在屏幕显示、记录日志等
时间的转换,比如把字符串格式的日期转成Python中的日期类型
时间的运算,计算两个日期间的差值等
在Python中, 通常有这几种方式来表示时间:
1.时间戳(timestamp) , 表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。例子: 1554864776.161901
2.格式化的时间字符串,比如"2020-10-03 17:54"
3.元组(struct_time) 共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同,
mac.上: time.struct_time(tm_year=2020, tm_mon=4, tm_mday=10, tm_hour=2, tm_min=53, tm_sec=15,tm_wday=2, tm_yday=100, tm_isdst=0)
索引(Index) 属性(Attribute) 值(values)
0 tm_year (年) 比如2011
1 tm_mon (月) 1-12
2 tm_mday (日) 1-31
3 tm_hour (时) 0-23
4 tm_min (分) 0-59
5 tm_sec (秒) 0-59
6 tm_wday(weekday) 0-6(0表示周一)
7 tmyday(一年中的第几天) 1-366
8 tm_isdst (是否是夏令时) 默认为-1
UTC时间
UTC (Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8,又 称东8区。DST (Daylight Saving Time)即夏令时。
time模块常用方法
1、返回当前时间戳: time.time()
2、将一个时间戳转换为当前时区的struct_time。若secs参数未提供,则以当前时间为准: time.localtime( [secs] )
3、gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time: time.gmtime([secs])
4、将一个时间对象(struct_time)转换为时间戳: time.mktime(t)
5、线程推迟指定的时间运行,单位为秒:time.sleep(secs)
6、time.strftime (format[ , t])
: 把一个代表时间的元组或者struct. time (如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime)。
举例:
time.strftime(“%Y-%m-%d %X”,time.localtime()) #输出’2017-10-01 12:14:23’
7、time.strptime(string[, format])
: 把一个格式化时间字符串转化为struct_time。 实际上它和strftime()是逆操作。
举例:
time.strptime( “2017-10-3 17:54”,“%Y-%m-%d %H:%M”) #输出
time.struct_time(tm_year=2017, tm_mon=10, tm._mday=3, tm_hour=17, tm_min=54, tm_sec=0,tm_wday=1, tm_yday=276, tm_isdst=-1)
1、返回当前的datetime日期类型:datetime.datetime.now()
2、把一个时间戳转为datetime:datetime.date.fromtimestamp(322222)
3、时间运算: datetime.timedelta()
例:
#当前的时间上增加4天和4个小时,默认增加的是天数
datetime.datetime.now() + datetime.timedelta(4,hours=4)
4、时间替换
例:
#把时间往后调100年
d=datetime.datetime.now()
d.replace(year=2120,month=9,day=9)
import random
#返回1-10之间的一个随机数,不包括10
random.randrange(1,10)
#返回1-10之间的一个随机数,包括10
random.randint(1,10)
#随机选取0到100间的偶数
random.randrange(1,100,2)
#返回一个随机浮点数
random.random()
#返回一个给定数据集合中的随机字符 '#'
random.choice('abce3#$@1')
#从多个字符中选取特定数量的字符 ['a','d','c']
random.sample('abcdefghij',3)
#生成随机字符串
import string
''.join(random.sample(string.ascii_lowercase + string.digits, 6))
#洗牌(打乱列表里的数据)
a=[0,1,2,3,4,5,6,7,8,9]
random.shuffle(a)
SMTP称为简单邮件传输协议
(Simple Mail Transfer Protocal),目标是向用户提供高效、可靠的邮件传输。它的一个重要特点是**它能够在传送中接力传送邮件
**,即邮件可以通过不同网络上的主机接力式传送。通常它工作在两种情况下:一是邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP是一个请求/响应协议,它监听25号端口
,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连接。
想实现发送邮件需经过以下几步:
1、登录邮件服务器
2、构造符合邮件协议规则要求的邮件内容(email模块)
3、发送
Python对SMTP支持有smtplib和email两个模块,email 负责构造邮件,smtplib 负责发送邮件它对smtp协议进行了简单的封装。
设置邮箱
1、登录邮箱
2、往下翻到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启之后有临时密码,复制一下,填写到 smtp_obj.login("发送者邮箱","邮箱临时密码")
4、第四步之后,往下翻,可以看到接收、发送邮件服务器
import smtplib
from email.mime.text import MIMEText #邮件正文
from email.header import Header #邮件头
'''------------登录邮件服务器--------------------'''
#发件人邮箱中的SMTP服务器,默认端口号是25(因为传输的时候是明文的)
#SSL 是经过加密的 端口号有所改变
smtp_obj=smtplib.SMTP_SSL("smtp.qq.com",465)
#括号中对应的是发件人邮箱账号、邮箱密码
smtp_obj.login("发送者邮箱","邮箱临时密码")
#显示调试信息
smtp_obj.set_debuglevel(1)
'''------------设置邮件头信息--------------------'''
# plain 文本格式
msg = MIMEText("文本信息","plain","utf-8")
#发送者
msg["From"] = Header("来自娜美的问候","utf-8")
#接收者
msg["To"] = Header("有缘人","utf-8")
#主题
msg["Subject"] = Header("娜美的信","utf-8")
'''----------------------发送--------------------'''
smtp_obj.sendmail("发送者邮箱",["接收者邮箱1","接收者邮箱2"],msg.as_string())
import smtplib
from email.mime.text import MIMEText #邮件正文
from email.header import Header #邮件头
'''------------登录邮件服务器--------------------'''
#发件人邮箱中的SMTP服务器,默认端口号是25(因为传输的时候是明文的)
#SSL 是经过加密的 端口号有所改变
smtp_obj=smtplib.SMTP_SSL("smtp.qq.com",465)
#括号中对应的是发件人邮箱账号、邮箱密码
smtp_obj.login("发送者邮箱","邮箱临时密码")
#显示调试信息
smtp_obj.set_debuglevel(1)
'''------------设置邮件头信息--------------------'''
# html文本格式
mail_body='''
hello
不错不错。。。哈士奇
'''
msg = MIMEText(mail_body,"html","utf-8")
#发送者
msg["From"] = Header("来自娜美的问候","utf-8")
#接收者
msg["To"] = Header("有缘人","utf-8")
#主题
msg["Subject"] = Header("娜美的信","utf-8")
'''----------------------发送--------------------'''
smtp_obj.sendmail("发送者邮箱",["接收者邮箱1","接收者邮箱2"],msg.as_string())