一、os模块
import os
# 1.os.access
ret = os.access('animals', os.F_OK)
print('F_OK - 返回值', ret)
ret = os.access('test.py', os.R_OK)
print('R_OK - 返回值', ret)
ret = os.access('test.py', os.W_OK)
print('W_OK - 返回值', ret)
ret = os.access('test.py', os.X_OK)
print('X_OK - 返回值', ret)
# 2.os.getcwd()
# 返回当前目录
print(os.getcwd())
print('目录为:', os.listdir(os.getcwd()))
# 3.os.fstat
# 打开文件
fd = os.open('01-review.py', os.O_RDWR | os.O_CREAT)
# 获取元组
info = os.fstat(fd)
print('文件信息', info)
print('文件UID:', info.st_uid)
print('文件GID:', info.st_gid)
# 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示
print('文件最近访问时间:', info.st_atime)
print('文件最近修改时间:', info.st_mtime)
print('文件状态信息的修改时间(不是文件内容修改时间)', info.st_ctime)
os.close(fd)
参考:https://www.runoob.com/python/os-file-methods.html
二、time模块的使用
import time
# 每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示
# 时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
# 1.获取当前时间 localtime
# 从返回浮点数的时间戳方式向元组转换,只要将浮点数转换给localtime之类的函数
now = time.localtime(time.time())
print(now)
print(type(now))
# 2.获取格式化的时间
# 你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
# time.asctime([tupletime])
# 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
now = time.asctime(time.localtime(time.time()))
print(now)
# 等价于
print(time.ctime())
# 3.time.perf_time()和time.process_time()
# 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
# 由于clock该方法依赖操作系统,在 Python 3.3 以后不被推荐,而在 3.8 版本中被移除,需使用下列两个函数替代。
# 只有连续调用的结果之间的差才是有效的。
print(time.perf_counter()) # # 返回系统运行时间
print(time.process_time()) # # 返回进程运行时间
# 4. time.gmtime([secs])
# 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
print(time.gmtime())
# 5.time.mktime()
# Python time mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,
# 返回用秒数来表示时间的浮点数。
# 如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError。
t = (2016, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime(t)
print("time.mktime(t) : %f" % secs)
# 字符串格式转换成时时间戳
str_time = '2018-1-17'
print(time.mktime(time.strptime(str_time,'%Y-%m-%d')))
print("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs)))
# 6.time.strftime()
# 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 7.time.strptime()
# 根据fmt的格式把一个时间字符串解析为时间元组。
struct_time = time.strptime("30 Nov 00", "%d %b %y")
print(struct_time)
参考:https://www.runoob.com/python3/python3-date-time.html
三、math模块
import math
print(math.radians(180), math.degrees(math.pi))
print(math.pow(2, 3))
print(math.modf(1.23), math.trunc(1.23))
print(math.log10(2), math.log(4, 2), math.factorial(3), math.ceil(2.3), math.floor(2.3))
print(math.isnan(2.3), math.isnan(2), math.inf, math.isinf(math.inf))
四、calendar模块
# 1.calendar.setfirstweekday()
print(calendar.firstweekday(), type(calendar.firstweekday()))
calendar.setfirstweekday(6) # 0-6
print(calendar.firstweekday())
# 2.calendar.leapdays、calendar.isleap
print(calendar.isleap(1600))
print(calendar.leapdays(1600, 1601))
print(calendar.leapdays(1599, 1600))
# 3.calendar.monthcalendar()、calendar.monthrange()
print(calendar.monthcalendar(2019, 8))
print(calendar.monthrange(2019, 8))
参考:https://www.runoob.com/python3/python3-date-time.html
datetime
import datetime
# 1.now、timedelta
today = datetime.datetime.now()
print(today, time.mktime(today.timetuple()))
print(today - datetime.timedelta(days=1))
print(today - datetime.timedelta(hours=1))
# 2、datetime()
# 时时间戳转换成datetime
print(datetime.datetime.fromtimestamp(time.time()))
五、Random
import random # 调用random模块
a = random.random() # 随机从0-1之间抽取一个小数
print(a)
a = random.randint(0,100) # 随机从0-100之间抽取一个数字
print(a)
a = random.choice('abcdefg') # 随机从字符串/列表/字典等对象中抽取一个元素(可能会重复)
print(a)
a = random.sample('abcdefg', 3) # 随机从字符串/列表/字典等对象中抽取多个不重复的元素
print(a)
items = [1, 2, 3, 4, 5, 6] # “随机洗牌”,比如打乱列表
random.shuffle(items)
print(items)
数据分析需要用到pandas
和NumPy
模块,网页开发要用到Django
模块
六、CSV模块(简易版Excel)
import csv
# dir()函数会得到一个列表,用for循环一行行打印列表比较直观
for i in dir(csv):
print(i)
"""
Dialect
DictReader
DictWriter
Error
OrderedDict
QUOTE_ALL
QUOTE_MINIMAL
QUOTE_NONE
QUOTE_NONNUMERIC
Sniffer
StringIO
_Dialect
__all__
__builtins__
__cached__
__doc__
__file__
__loader__
__name__
__package__
__spec__
__version__
excel
excel_tab
field_size_limit
get_dialect
list_dialects
re
reader
register_dialect
unix_dialect
unregister_dialect
writer
"""
csv模块的官方英文教程:https://docs.python.org/3.6/library/csv.html
中文教程:https://yiyibooks.cn/xx/python_352/library/csv.html#module-csv