标签:mysql dota 换行 enc 整数 iges tree 接受 bitbucket
包:用来从逻辑上组织模块的,本质是一个目录(必须带有一个__init__.py的文件)。
import mod1
import mod1,mod2,mod3
from mod1 import * #导入mod1中所有的变量,函数等(不建议使用)
from mod1 import say_hello as say_hello2 #当与本地模块冲突是可以使用别名
# Author:Li Dongfei
import mod1
mod1.say_hello('dongfei')
# Author:Li Dongfei
from mod1 import *
say_hello('dongfei')
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
导入模块的本质就是把Python文件解释一遍
导入包的本质是在解释执行包下的__init__.py文件
from mods import *
# Author:Li Dongfei
import time,datetime
print(time.time()) #时间戳
print(time.localtime().tm_year) #本地时间,元组形式,可接受时间戳
print(time.gmtime()) #utc时间,元组形式,可接受时间戳
print(time.mktime(time.localtime())) #元组形式转换为时间戳
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) #自定义字符串格式
print(time.strptime("2018-11-05 17:42:07","%Y-%m-%d %H:%M:%S")) #字符串转换为元组格式
print(time.asctime()) #接受元组
print(time.ctime()) #接受时间戳
print(datetime.datetime.now()) #获取当前时间
print(datetime.datetime.now()+datetime.timedelta(3)) #三天后的时间
print(datetime.datetime.now()+datetime.timedelta(-3)) #三天前的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3)) #三小时后的时间
print(datetime.datetime.now()+datetime.timedelta(minutes=3)) #三分钟后的时间
# Author:Li Dongfei
import random
print(random.random()) #随机浮点数,0 - 1
print(random.randint(1,7)) #随机整数,1 - 7(包括7)
print(random.randrange(1,9)) #随机整数,1 - 9(不包括9)
print(random.choice('dongfei')) #随机从字符串,元组,列表等中取一个元素
print(random.sample('hello',2)) #从字符串中随机取2位
print(random.uniform(1,3)) #取浮点数1 - 3
list1 = [1,2,3,4,5,6,7,8]
random.shuffle(list1)
print(list1)
# 验证码生成代码
checkcode=''
for i in range(4):
current = random.randrange(0,4)
if current == i:
tmp = chr(random.randint(65,90))
else:
tmp = random.randint(0,9)
checkcode += str(tmp)
print(checkcode)
# Author:Li Dongfei
import os
print(os.getcwd()) #当前文件所在目录
os.chdir("C:\\Users") #切换目录
os.chdir(r"C:\Users")
print(os.curdir) #返回当前目录
print(os.pardir) #返回父目录
#os.makedirs(r"C:\a\b\c\d") #递归创建目录
#os.removedirs(r"C:\a\b\c\d") #递归删除目录(清理空文件夹)
#os.mkdir(r"C:\e") #创建一个目录
#os.rmdir(r"C:\e") #删除一个目录
print(os.listdir(".")) #列出当前目录的文件及文件夹
#os.remove("xxx") #删除一个文件
#os.rename("oldname","newname") #重命名
print(os.stat(r'D:\PycharmProjects\p1810\hello.py')) #查看文件的信息
print(os.sep) #获取操作系统的路径分隔符
print(os.linesep) #获取换行分隔符
print(os.pathsep) #获取环境变量分隔符
print(os.environ) #获取环境变量
print(os.name) #显示系统名
os.system("dir") #执行命令
#os.path.abspath() #获取文件的绝对路径
print(os.path.split(r"C:\a\b\c.txt"))
print(os.path.dirname(r"C:\a\b\c.txt")) #获取目录名
print(os.path.basename(r"C:\a\b\c.txt")) #获取文件名
print(os.path.exists(r"C:\a\b\c.txt")) #判读路径是否存在
print(os.path.isabs(r"C:\a\b\c.txt")) #判读是否为绝对路径
print(os.path.isfile(r"C:\a\b\c.txt")) #判读是否为一个文件
print(os.path.getatime(r'D:\PycharmProjects\p1810\hello.py'))
print(os.path.getmtime(r'D:\PycharmProjects\p1810\hello.py'))
print(os.path.getctime(r'D:\PycharmProjects\p1810\hello.py'))
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write('please:')
val = sys.stdin.readline()[:-1]
# Author:Li Dongfei
import shutil
f1 = open("1.txt",encoding="utf-8")
f2 = open("2.txt","w")
shutil.copyfileobj(f1,f2) #copy文件
shutil.copyfile("2.txt","3.txt")
shutil.copymode("3.txt","4.txt") #仅copy权限
shutil.copystat("4.txt","5.txt") #copy状态信息
shutil.copy("4.txt","5.txt") #copy文件和权限
shutil.copy2("4.txt","5.txt") #copy文件和状态信息
shutil.copytree("D:\PycharmProjects","D:\PycharmProjects2") #递归cp
shutil.rmtree("D:\PycharmProjects2") #递归删除
shutil.move("5.txt","6.txt") #移动文件
shutil.make_archive("PycharmProjects","zip","D:\PycharmProjects") #压缩归档
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
# Author:Li Dongfei
import shelve,datetime
d = shelve.open('shelve_test') #打开一个文件
info = {'age':22,"job":'it'}
name = ["redis","mysql","sqlserver"]
d["name"] = name
d["info"] = info
d['date'] = datetime.datetime.now()
d.close()
import shelve
d = shelve.open('shelve_test')
print(d.get("name"))
print(d.get("info"))
print(d.get("date"))
# Author:Li Dongfei
import configparser
config = configparser.ConfigParser()
config["DEFAULT"] = {'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9'}
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Host Port'] = '50022' # mutates the parser
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)
# Author:Li Dongfei
import configparser
conf = configparser.ConfigParser()
conf.read("example.ini")
print(conf.defaults())
print(conf.sections())
print(conf['bitbucket.org']['user']) #查
sec = conf.remove_section('bitbucket.org') #删
conf.write(open('example2.ini',"w"))
# Author:Li Dongfei
import hashlib
m = hashlib.md5()
m.update(b"Hello")
print(m.hexdigest())
m.update(b"World")
print(m.hexdigest())
m2 = hashlib.md5()
m2.update(b"HelloWorld")
print(m2.hexdigest())
'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
'^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
'$' 匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
'*' 匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac") 结果为['abb', 'ab', 'a']
'+' 匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
'?' 匹配前一个字符1次或0次
'{m}' 匹配前一个字符m次
'{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
'|' 匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
'(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
'\A' 只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
'\Z' 匹配字符结尾,同$
'\d' 匹配数字0-9
'\D' 匹配非数字
'\w' 匹配[A-Za-z0-9]
'\W' 匹配非[A-Za-z0-9]
's' 匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
'(?P<name>...)' 分组匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '1993'}
示例:
# Author:Li Dongfei
import re
res1 = re.match("^dong","dong123fei")
res2 = re.match("^dong\d","dong123fei") #\d代表一个数字
res3 = re.match("^dong\d+","dong123fei") #+代表一个或多个
print(res1.group(),res2.group(),res3.group())
标签:mysql dota 换行 enc 整数 iges tree 接受 bitbucket
原文地址:https://www.cnblogs.com/L-dongf/p/9925979.html