python----模块知识拓展
1.hashlib ------configpraser-------- xml
hashlib
模块导入:import hashlib
模块说明:用于将信息加密,明文变成密文
功能说明
MD5算法
m=hashlib.md5()将方法赋值给一个对象
m.update("hello world".encode("utf-8"))#需要转换成字节类型
m.hexdigest()加密后的16进制的数据
SHA256算法
m=hashlib.sha256()
m.update("hello world".encode("utf-8"))
m.hexdigest()#加密后的数据
注意:update的数据必须是字节类型
configparser
模块导入:import configparser 3.x improot ConfigParser 2.x
模块说明:用于生成配置文件 .ini文件
功能说明
生成配置文件
import configparser
config = configparser.ConfigParser()#将方法写入一个对象中
config["DEFAULT"] = {"ipaddress":"192.168.0.100","user":"root","pasw":"123","port":"3306"}
config["www.hairuinet.com"] = {"name":"hairui","index":"www.hairuinet.com"}
config["www.92hairui.cn"] ={"name":"hairui","index":"www.92hairui.com"}#创建里面section
with open("web.ini","w") as f:#写入文件
config.write(f)
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
步骤:
将生成文件方法写个一个变量
在方法下创建内容
将方法内容写入文件
读取配置文件
config= configparser.ConfigParser()
config.read("web.ini")
print(config.defaults())#读取的DEFAULT的信息 是个有序的字典
print(config.sections())#读取所有的section 是个列表
for i in config["www.92hairui.cn"]:#包含DEFAULT下的信息
print(i)
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
defaults()是DEFAULT的信息
sections()是所有的主键值
注:config对象执行了读取操作,config对象就成了一个字典格式,按字典格式操作。
删除配置信息
import configparser
#删除信息
config= configparser.ConfigParser()
config.read("web.ini")
config.remove_section("www.92hairui.cn")#删除一个section
config.remove_option("www.hairuinet.com","name")#删除一个section下的一条记录
config.write(open("web.ini","w"))#删除完毕后写入文件
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
remove_section(section) 删除主键下的所有
remove_option(section,option)删除section主键下的某条记录
修改配置信息
import configparser
config= configparser.ConfigParser()
config.read("web.ini")
config.set("www.hairuinet.com","name","海瑞")#修改option的值
#config.add_section("www.baidu.com")#添加一个section,如果有会报错
print(config.has_section("www.92hairui.cn"))#判断一个section是否在配置文件中
config.write(open("web.ini","w"))
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
set()只能修改某个section的值。
注意事项:
修改和删除之后必须要重新写入,否则不生效的!
xml
模块导入:import xml.etree.ElementTree
模块说明:用于生成配置文件 .ini文件
功能说明
xml文件
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
文件操作 查 改 删
#!/usr/bin/env python
# -*- coding=utf-8 -*-
# Created on: 2016年12月 日
# @author: 郑建文
# blog:www.hairuinet.com
# Version: 1.0
import xml.etree.ElementTree as xml
t = xml.parse("xml_file")
tree = t.getroot()
# =======遍历文件
'''
for i in tree:
print(i.tag,i.attrib)#country {'name': 'Liechtenstein'}
for f in i:
print(f.tag,f.text,)
# {'updated': 'yes'} f.attrib
# rank f.tag
# 2 f.text
'''
#=======查找year 的 标签的tag和text
for node in tree.iter('year'):
print(node.tag,node.text)
# 修改
for node in tree.iter('year'):
new_year = int(node.text) + 1
node.text = str(new_year)
node.set("updated", "yes")
tree.write("xmltest.xml")
# 删除node
for country in tree.findall('country'):
rank = int(country.find('rank').text)
if rank > 50:
tree.remove(country)
tree.write('output.xml')
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
创建xml文件
import xml.etree.ElementTree as ET
new_xml = ET.Element("namelist")
name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})
age = ET.SubElement(name, "age", attrib={"checked": "no"})
sex = ET.SubElement(name, "sex")
sex.text = '33'
name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
age = ET.SubElement(name2, "age")
age.text = '19'
#以下写入文件固定格式
et = ET.ElementTree(new_xml) # 生成文档对象
et.write("test.xml", encoding="utf-8", xml_declaration=True)
2.logging------ json -------picle -------shelve
logging
导入方式: import loggin
模块用途:用于写日志功能模块
功能介绍
默认情况下,logging将日志打印到屏幕,日志级别为WARNING;
日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别。
import logging
logging.basicConfig(level=logging.DEBUG,
format='[%(asctime)s] [%(filename)s][line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%F %T',
filename='myapp.log',
filemode='w')
logging.debug('debug 信息')
logging.info('INFO 信息')
logging.warning('警告信息')
#[2016-12-10 14:12:37] [randommk.py][line:53] DEBUG debug 信息
#[2016-12-10 14:12:37] [randommk.py][line:54] INFO INFO 信息
#[2016-12-10 14:12:37] [randommk.py][line:55] WARNING 警告信息
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161240/index.html
level=logging.DEBUG 设置日志级别
format 设置输出格式
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
datefmt 设置日期格式,同 time.strftime()
%Y 年 %m 月 %D日 %H时 %M分 %S 秒
filename 设置文件路径
filemode 设置文件打开模式
注:没有filename和filemode直接输出
屏幕和文件同时输出和写入
import logging
logger = logging.getLogger()# 创建一个handler,用于写入日志文件fh = logging.FileHandler('test.log')# 再创建一个handler,用于输出到控制台ch = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
logger.addHandler(ch)
logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161240/index.html
json
导入方式: import json
模块用途:json,用于字符串 和 python数据类型间进行转换,和其他语言交换数据
功能介绍
dumps 将字符串通过特殊方法转换成python认识的格式,如字符串转字典啥的
li = "[1,2,3]"
s = json.loads(li)
print(type(s))
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161240/index.html
dump 将数据类型通过特殊方法转换成json格式,并存入文件中,加了一个write的操作
loads 将json的字符串转换成python的数据类型
load将字符串通过特殊方法转换成python认识的格式,并存入文件中,加了一个read的操作
注:操作文件必须先写文件句柄,将所有单引号变双引号
picle
导入方式: import picle
模块用途:pickle,用于python特有的类型只能和python的数据类型间进行转换
功能介绍
同json
shelve
导入方式: import shelve
模块用途:pickle的高级版本,只有一个写法,会生成3个文件
功能介绍
f = shelve.open(r"文件路径")
f = []
f["key"] = {...}
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161240/index.html
3.time------ datetime------ random
time
导入方式:import time
模块用途:对时间的操作
功能说明
时间戳 1970年1月1日之后的秒,即:time.time()
格式化的字符串 2014-11-11 11:11, 即:time.strftime('%Y-%m-%d')
结构化时间 元组包含了:年、日、星期等... time.struct_time 即:time.localtime()
print(time.time()) 打印当前时间戳
print(time.ctime()) # 返回Fri Aug 19 12:38:29 2016 格式, 可以加参数,比如time.ctime(time.time()-86400) 前一天
print(time.gmtime())#返回当前信息的变量值,时间为时区格林时间
#time.struct_time(tm_year=2016, tm_mon=12, tm_mday=9, tm_hour=5, tm_min=11, tm_sec=37, tm_wday=4, tm_yday=344, tm_isdst=0)print(time.gmtime())time1 = time.gmtime(time.time()+28800)#+8个小时print("%d-%d-%d %d:%d:%d"%(time1.tm_year,time1.tm_mon,time1.tm_mday,time1.tm_hour,time1.tm_min,time1.tm_sec))
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161239/index.html
print(time.clock()) # 返回处理器时间,3.3开始已废弃 , 改成了time.process_time()测量处理器运算时间,不包括sleep时间,不稳定,mac上测不出来
print(time.altzone) # 返回与utc时间的时间差,以秒计算\
print(time.asctime()) # 返回时间格式"Fri Aug 19 11:14:16 2016",
print(time.localtime()) # 返回本地时间 的struct time对象格式
print(time.gmtime(time.time() - 800000)) # 返回utc时间的struc时间对象格式
struct_2_stamp = time.mktime(string_2_struct) # 将struct时间对象转成时间戳
#将时间戳转为字符串格式
print(time.gmtime(time.time() - 86640)) # 将utc时间戳转换成struct_time格式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())) # 将utc struct_time格式转成指定的字符串格式
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将utc struct_time格式转成指定的字符串格式
print(time.strftime("%F %T",time.gmtime()) ) 和上面结果一样
time.strftime()的格式说明
%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号
datatime
导入方式:
模块用途:时间模块
功能说明
print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2016-08-19
print(datetime.datetime.now() )
print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
random
导入方式:import random
模块用途:用于生成随机数
功能说明
print(random.random())#随机生成一个小数
print(random.randint(1,5))#生成1-4 随机一个
print(random.randrange(10))#生成0-9 随机一个
print(random.randrange(10,21))#生成10-21 随机一个
案例:随机验证码
#!/usr/bin/env python# -*- coding=utf-8 -*-# Created on: 2016年12月 9日# @author: 郑建文# Email: 574601624@qq.com# Version: 1.0import randomyzm = ""for i in range(6): a = random.randrange(4) if a == 1 or a == 3: yzm += str(a) else: b = random.randrange(65, 91) s = chr(b) yzm += sprint(yzm)
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161239/index.html
案例:随机颜色
#!/usr/bin/env python# -*- coding=utf-8 -*-# Created on: 2016年12月 日# @author: 郑建文# Email: 574601624@qq.com# Version: 1.0import randomfor i in range(10): x = random.randrange(30,38) print("\33[{0};1m我的颜色编号为:\33[1m{0}".format(x))
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161239/index.html
calendar
导入方式:import calendar
模块用途:用于读取某年某一月的信息,也是时间模块
功能说明
calendar.month(年,月)获取当前月的日历格式
import calendars = calendar.month(2016,12)print(s)
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161239/index.html
序号 | 函数及描述 |
---|---|
1 | calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。 |
2 | calendar.firstweekday( ) 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。 |
3 | calendar.isleap(year) 是闰年返回True,否则为false。 |
4 | calendar.leapdays(y1,y2) 返回在Y1,Y2两年之间的闰年总数。 |
5 | calendar.month(year,month,w=2,l=1) 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。 |
6 | calendar.monthcalendar(year,month) 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。 |
7 | calendar.monthrange(year,month) 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。 |
8 | calendar.prcal(year,w=2,l=1,c=6) 相当于 print calendar.calendar(year,w,l,c). |
9 | calendar.prmonth(year,month,w=2,l=1) 相当于 print calendar.calendar(year,w,l,c)。 |
10 | calendar.setfirstweekday(weekday) 设置每周的起始日期码。0(星期一)到6(星期日)。 |
11 | calendar.timegm(tupletime) 和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。 |
12 | calendar.weekday(year,month,day) 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。 |
4.sys ------os------- getpass
模块的导入
导入一个py文件,解释器解释该py文件
导入一个包,解释器解释该包下的 __init__.py 文件
import module 直接导入模块
from module.xx.xx import xx 从某个模块包导入某个模块
from module.xx.xx import xx as rename 从某个包导入模块并给起个别名
from module.xx.xx import * 从某个包导入该包下所有模块
模块安装
第一种
yum install 模块名称
pip install 模块名称
pip3 install 模块名称
apt-get
第二种
下载源码
解压源码
进入目录
编译源码 python setup.py build
安装源码 python setup.py install
sys模块
导入方式: import sys
模块用途:调取系统信息
功能介绍
sys.argv 命令行参数List,第一个元素是程序本身路径 执行 a.py a b c # ["a.py","a","b", "c"]
sys.exit(n) 退出程序,正常退出时exit(0) 0-127 默认为0
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称 如:win32 win64 .. 用于跨平台
sys.stdout.write('please:') 标准化输入
val = sys.stdin.readline()[:-1]
os模块
导入方式:import os
模块用途:执行系统操作
功能介绍
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.getpid() 获取进程的pid
os.getppid() 获取父进程的pid
subprocess
导入方式:import subproess
模块功能:执行用户命令
功能介绍
s = subproess.Popen(命令,shell=True,stdout=subproess.PIPE)执行命令将结果反正stdout里
s.stdout.read().encode()将结果读取并解码
getpass模块
导入方式:import getpass
模块用途:将用户输入的信息变成密文模式
功能介绍
getpass.getpass(">>") 等待用户输入,用户无法看到输入内容
1.安装模块
1)利用pip安装
pip install 模块名
2)利用源码安装
python setup.py install
2.卸载模块
1).如果是用pip安装的,可以直接使用pip uninstall 模块名
2).如果是用python setup.py install安装,使用python setup.py uninstall来卸载
例如:pip uninstall pyserial
#本段代码来自 海瑞博客http://www.hairuinet.com/python/20161241/index.html
python----模块知识拓展的更多相关文章
- python模块知识一 自定义模块、time、datetime时间模块
第五章 模块 1.自定义模块: 模块分类: 内置模块(标准库)-- python解释器自带的.py文件(模块) 第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi) 自定义模块(自己写的) ...
- python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块
4.random -- 随机模块 a-z:97 ~ 122 A-Z :65 ~ 90 import random #浮点数 print(random.random())#0~1,不可指定 print( ...
- python模块知识四 包和logging日志
11.包 包:文件夹下具有__init__.py文件就是一个包,包用来管理多个模块 包的结构如下: bake ├── __init__.py ├── api ├── __init__.py ├── p ...
- python模块知识三 hashlib 加密模块、collections、re模块
8.hashlib 加密模块 主要用于加密和校验 常见密文:md5,sha1,sha256,sha512 只要明文相同,密文就相同 只要明文不相同,密文就是不相同的 不能反逆(不能解密)--md5 ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- python day 8: re模块补充,导入模块,hashlib模块,字符串格式化,模块知识拾遗,requests模块初识
目录 python day 8 1. re模块补充 2. import模块导入 3. os模块 4. hashlib模块 5. 字符串格式:百分号法与format方法 6. 模块知识拾遗 7. req ...
- python 模块和包的基础知识
1.常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀 2.为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理.这时我们不仅 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
随机推荐
- 对比MySQL,你究竟在什么时候更需要MongoDB(转)
译文:对比MySQL,你究竟在什么时候更需要MongoDB 原文链接: When Should I Use MongoDB rather than MySQL (or other RDBMS): Th ...
- 编程算法 - 全然背包问题 代码(C)
全然背包问题 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 有n个重量和价值分别为w,v的物品, 从这些物品中挑选出总重量不超过W的物品, 求 ...
- IOS研究之IOS7四种后台机制
IOS 7中,实际上APP拥有四种后台模式.不管是哪一种后台机制,均须要利用苹果给予的对应后台接口实现.IOS7系统中,开发人员能够灵活利用多种后台接口(API)实现更加智能的应用操作. 对获取 ...
- 003-spring结合java类调用quartz
一.利弊 针对001 中设置,不方便程序中动态添加任务,只能使用配置进行配置任务, 适用于已知固定时刻需要执行的任务. 针对002中设置,不方便结合调用spring注入的实体 使用于程序内部新增添的任 ...
- Java并发—java.util.concurrent并发包概括(转载)
一.描述线程的类:Runable和Thread都属于java.lang包 二.内置锁synchronized属于jvm关键字,内置条件队列操作接口Object.wait()/notify()/noti ...
- Visual Studio Code 配合 Node.js 轻松实现JS断点调试
一直喜欢vscode这个编辑器,今天看在liaoxuefeng.com学习nodejs时,看到上面 讲了使用vscode配合nodejs调试JS代码,原来这么简单,现在分享如下: 本人环境: Visu ...
- PHP基础学习代码案例
<?php print 'hello world ! '; echo '<br/>'; ?> <?php $number="16"; $number2 ...
- js判断background颜色明暗色调,以设置白/黑字体颜色
整理自:jscolor.js插件 this.styleElement.style.color = this.isLight() ? '#000' : '#FFF'; this.isLight ...
- LINQ 获取当前数组中出现次数最多的元素
LINQ 获取当前数组中出现次数最多的元素 1 List<string> a = new List<string>(); a.Add( ...
- uva 11426 GCD - Extreme (II) (欧拉函数打表)
题意:给一个N,和公式 求G(N). 分析:设F(N)= gcd(1,N)+gcd(2,N)+...gcd(N-1,N).则 G(N ) = G(N-1) + F(N). 设满足gcd(x,N) 值为 ...