python常用模块
import(modulename)导入模块math import math1、向上取整math.ceil() num 3.14 math.ceil(num) 42、向下取整math.floor() num 5.9 math.floor(num) 5 #或 int(num) 5datetimefrom datetime import datetime1、获取当前格式化日期 print(datetime.now()) 2017-09-30 09:12:31.0703122、获取指定日期和时间 dt datetime(2017, 10, 1, 6, 30) print(dt) 2017-10-01 06:30:003、把格式化时间转换为时间戳。python的tempstamp是一个浮点数。小数位表示毫秒数 dt datetime(2017, 9, 30, 9, 48) dt.timestamp() 1506736080.04、格式化时间戳 t 1506736080.0 print(datetime.fromtimestamp(t)) 2017-09-30 09:48:00 注datetime.utcfromtimestamp(t)直接转换到utc标准时区的时间5、datetime转换为str now datetime.now() datetime.now().strftime(%Y-%m-%d %H:%M:%S) 2018-03-03 22:06:446、datetime加减 from datetime import datetime, timedelta now datetime.now() print(now) 2017-09-30 10:36:54.148904 print(now timedelta(hours1)) 2017-09-30 11:36:54.148904 print(now timedelta(days1)) 2017-10-01 10:36:54.148904 (datetime.now()-timedelta(days1, hours1, minutes1, seconds1)).strftime(%Y-%m-%d %H:%M:%S) 2018-03-02 21:15:247、datetime.now().timetuple()返回当前时间struct_time格式 datetime.now().timetuple() time.struct_time(tm_year2017, tm_mon10, tm_mday1, tm_hour19, tm_min45, tm_sec29, tm_wday6, tm_yday274, tm_isdst-1)8、datetime.now().replace()传入的参数会替换结果时间如果什么都没传则返回调用replace()的时间对象 datetime.now().replace(2017,10,1) datetime.datetime(2017, 10, 1, 19, 49, 53, 838155)timeimport time1、time.localtime() time.localtime() time.struct_time(tm_year2017, tm_mon9, tm_mday30, tm_hour11, tm_min28, tm_sec1, tm_wday5, tm_yday273, tm_isdst0) 索引index 属性attribute 值values 0 tm_year年 2017 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周 0-60是周日 7 tm_yday 一年中第几天 8 tm_isdst夏令制2、time.sleep(second)让程序暂停second秒后运行3、time.time()返回当前时间戳 time.time() 1506742662.6955894、获取格式化时间 print(time.strftime(%Y-%m-%d %H:%M:%S, time.localtime())) 2017-09-30 11:41:215、time.clock()该函数有两个功能在第一次调用的时候返回的是程序运行的实际时间以第二次之后的调用返回的是自第一次调用后,到这次调用的时间间隔在win32系统下这个函数返回的是真实时间wall time而在Unix/Linux下返回的是CPU时间。6、指定日期转换为时间戳import time t 2017-11-24 17:30:00 #将其转换为时间数组 timeStruct time.strptime(t, %Y-%m-%d %H:%M:%S) #转换为时间戳: timeStamp int(time.mktime(timeStruct)) print(timeStamp) #结果 15115158007、指定时间戳格式化timeStamp 1511515800 localTime time.localtime(timeStamp) strTime time.strftime(%Y-%m-%d %H:%M:%S, localTime) print(strTime) 结果 2017-11-24 17:30:00sysimport sys1、sys.argv获取传入脚本的参数第一个参数是脚本本身test.py print(sys.argv) F:\python\testpython test.py 1 2 3 [test.py, 1, 2, 3]2、sys.path返回模块的搜索路径从当前文件所在路径开始搜索 sys.path [, D:\\Software\\python36.zip, D:\\Software\\DLLs, D:\\Software\\lib, D:\\Software, D:\\Software\\lib\\site-packages]3、sys.version返回python版本信息 sys.version 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)]4、sys.exit()退出程序和exit()功能一样 sys.exit(good bye) good bye C:\Users\HONOUR-CYY5、sys.platform返回操作系统平台名称 sys.platform win326、sys.stdout.write(str)在屏幕上打印数据 sys.stdout.write(hello) hello sys.stdout.write(\r) #刷新之前输出到屏幕的内容7、sys.stdout.flush()刷新缓冲区的内容到屏幕pickle序列化把变量从内存中变成可存储或传输的过程称之为序列化import pickle1、pickle.dumps()把任意对象序列化成一个bytes d dict(namechenyy, age20) a pickle.dumps(d) a b\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00chenyyq\x02X\x03\x00\x00\x00ageq\x03K\x14u.pickel.dump()直接把一个序列化对象写入文件 f open(dump.txt, wb) pickle.dump(d, f) f.close()2、pickel.loads()反序列化出对象 pickle.loads(a) {name: chenyy, age: 20}pickle.load()方法从一个file-like Object中直接反序列化出对象 f open(dump.txt, rb) d pickle.load(f) f .close() d {name: chenyy, age: 20}json import json1、json.dumps()把对象转化为一个字符串 d dict(namechenyy, age18) json.dumps(d) {name: chenyy, age: 18} json.dump()方法可以直接把json写入一个file-like Object2、json.loads()把json反序列化为python对象 json_str json.dumps(d) json.loads(json_str ) {name: chenyy, age: 18}json.load()方法从file-like Object中读取字符串并反序列化os1、os.getcwd()获取当前工作目录 os.getcwd() C:\\Users\\HONOUR-CYY2、os.chdir(dir)改变当前脚本工作目录 os.chdir(D:) os.getcwd() D:\\3、os.pardir返回当前目录的父目录’…’ os.pardir ..4、os.curdir返回当前目录’.’ os.curdir .5、os.makedirs(dir)递归生成多层目录 os.makedirs(a/b/c)6、os.removedirs(dir)递归向上删除空目录。如果目录非空则抛出异常 os.removedirs(D:/a/b/c)7、os.mkdir(dir)生成目录os.mkdir(b)8、os.rmdir(dir)删除一个空目录9、os.listdir()返回指定目录下的所有文件和子目录包括隐藏文件以列表形式返回。只会获取一层10、os.remove(file)删除一个文件11、os.rename(‘oldname’,‘newname’)重命名文件或目录12、os.stat()获取文件或目录信息 os.stat(./d.txt) os.stat_result(st_mode33206, st_ino562949953466137, st_dev462496, st_nlink1, st_uid0, st_gid0, st_size12, st_atime1506996315, st_mtime1506996321, st_ctime1506996315)13、os.sep返回操作系统特定的分隔符win下为’\’Linux下为‘/’ os.sep \\14、os.linesep返回操作系统的行终止符win下为\r\nLinux下为\n os.linesep \r\n16、os.name返回当前操作系统win os.name nt linux os.name posix17、os.system(command)可以用来直接运行shell命令 os.system(tree) 卷 文档 的文件夹 PATH 列表 卷序列号为 0000008E 0007:0EA0 E:. └─d └─b └─c 018、os.environ返回系统环境变量19、os.path.abspath(path)返回path规范化的绝对路径 os.path.abspath(./d.txt) E:\\test\\d.txt20、os.path.split(path)将path分割成目录和文件名以元组返回 os.path.split(D:/test/d.txt) (D:/test, d.txt) os.path.split(F:/python/a) (F:/python, a)21、os.path.dirname(path)返回path的目录即os.path.split(path)获取的第一个元素 os.path.dirname(D:/test/d.txt) D:/test os.path.dirname(F:/python/a) F:/python22、os.path.basename(path)返回os.path.split(path)获取的第二个元素 os.path.basename(D:/test/d.txt) d.txt os.path.basename(F:/python/a) a23、os.path.exists(path)判断path是否存在返回布尔值 os.path.exists(E:/test/d) True os.path.exists(E:/test/d.txt True24、os.path.isabs(path)是否为绝对路径返回布尔值 os.path.isabs(E:/test/d.txt) True os.path.isabs(./x.txt) False25、os.path.isfile(file)判断文件是否存在返回布尔值。目录返回False os.path.isfile(./d.txt) True26、os.path.isdir(dir)判断目录是否存在返回布尔值。文件返回False os.path.isdir(./d) True27、os.path.join(path1[, path2…])将多个路径组合后返回 os.path.join(/data,myproject,chenyy) /data/myproject/chenyy28、os.path.getatime(path)返回path所指向的文件或者目录的最后存取时间浮点数 os.path.getatime(./d.txt) 1506996315.76682529、os.path.getmtime(path)返回path所指向的文件或目录的最后修改时间浮点数 os.path.getmtime(./d.txt) 1506996321.781270330、os.path.getctime(path)返回path的创建时间浮点数 os.path.getctime(./d.txt) 1506996315.76682531、os.path.getsize(file)返回文件大小如果是目录则返回0 os.path.getsize(./d.txt) 12 os.path.getsize(./d) 032、os.path.splitext(file) os.path.splitext(log.text) 以元组形式返回文件名和后缀 (log, .text)33、os.startfile(path)windows中特有的函数启动外部程序hashlib import hashlib md5 hashlib.md5() md5.update(123456.encode(utf-8)) md5.hexdigest() e10adc3949ba59abbe56e057f20f883e 如果数据量很大可以分块多次调用update()最后计算的结果是一样的 md5 hashlib.md5() md5.update(123.encode(utf-8)) md5.update(456.encode(utf-8)) md5.hexdigest() e10adc3949ba59abbe56e057f20f883econfigparser解析配置文件假设有个ini的配置文件内容如下[cyy] age 18 name cyy [chenyy] age : 24 name : chenyy import configparser con configparser.ConfigParser() con.read(ini, encodingutf-8) [ini]con.sections()获取所有节点 con.sections() [cyy, chenyy]con.options(section)获取指定节点下所有键 con.options(cyy) [age, name]con.items(section)获取指定节点下所有键值对 con.items(chenyy) [(age, 24), (name, chenyy)]con.get(section,key)获取指定节点下指定键对应的值 con.get(chenyy,age) 24 con.getint(section,key) #把返回的值转换为整型 con.getfloat(section,key) #把返回的值转换为浮点型 con.getboolean(section,key) #把返回的值转换为布尔型con.has_section(section)检查节点是否存在返回布尔值 con.has_section(abc) False con.has_section(cyy) Truecon.add_section(section)con.write(open(file,‘w’))添加节点 con.add_section(abc) con.write(open(ini,w))con.remove_section(section)con.write(open(file,‘w’))删除节点返回布尔值删除成功后需要写入保存 con.remove_section(abc) True con.write(open(ini,w))con.has_option(section,key)检查节点下的key是否存在返回布尔值 con.has_option(cyy,age) Truecon.set(section,key,value)con.write(open(file,‘w’))设置指定节点下的键值对 con.set(chenyy,name,chenyy) con.write(open(ini,w))con.remove_option(section,key)con.write(open(file,‘w’))删除指定节点下的键返回布尔值删除成功后需要写入文件保存 con.remove_option(chenyy,name) True con.write(open(ini,w))shutil文件、文件夹、压缩包处理模块 import shutil1、shutil.copyfileobj(oldfile_object,newfile_object)将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(ini,r),open(new,w))2、shuutil.copyfile(filepath,filepath)拷贝文件文件不存在则创建 shutil.copyfile(d.txt,./d/d.txt) ./d/d.txt3、shutil.copymode()仅拷贝权限内容组用户均不变4、shutil.copystat()仅拷贝文件的状态信息包括mode bits, atime, mtime, flags5、shutil.copy()拷贝文件和权限6、shutil.copy2()拷贝文件和状态7、shutil.copytree(olddir, newdir, symlinksFalse, ignoreNone)递归拷贝目录下的所有文件和文件夹,newdir不存在则创建参数ignoreshutil.ignore_patterns(pattern)代表不拷贝正则匹配项匹配到的文件或目录8、shutil.rmtree(dir)递归删除目录下的所有文件和文件夹9、shutil.move(olddir, newdir)递归移动目录也可重命名目录类似linux的mv10、shutil.make_archive(filename, format, root_dir,owner,group)压缩文件返回压缩后的压缩包绝对路径filename压缩包的文件名可以指定路径format压缩包种类zip,tar,bztar,gztarroot_dir需要压缩文件的路径owner用户默认当前用户、group组默认当前组 shutil.make_archive(../www,gztar,root_dir./o) E:\\www.tar.gzzipfile import zipfile压缩文件z zipfile.ZipFile(zipname,format)z.write(filename)z.close()format文件写入模式‘w’, ‘a’。w方式会清空压缩包里的所有内容 import zipfile z zipfile.ZipFile(test.zip, a) z.write(./d.txt) #如果写入一个目录则只会写入一个空目录不会写入该目录下其它文件或文件夹 z.close()解压文件z zipfile.ZipFile(zipname,format)z.extractall()z.close()解压过后压缩包文件仍然在 zip zipfile.ZipFile(./test.zip,r) zip.extractall() zip.close()z zipfile.ZipFile(zipname,format)z.namelist()z.close()以列表返回压缩包里的所有文件和目录 z zipfile.ZipFile(test.zip,r) z.namelist() [new, d/]z zipfile.ZipFile(zipname,format)z.extract(file)z.close()解压压缩包里的指定文件或目录 z zipfile.ZipFile(test.zip,r) z.extract(new) E:\\test\\new z.close()tarfile import tarfile压缩tar tarfile.open(tarname,format) tar.add(filepath,arcnamealias) tar.close() #arcname把文件压缩进压缩包后可以换个文件名 #解压 tar tarfile.open(tarname,format) tar.extractall() tar.close()logging记录日志 import logginglogging.basicConfig( filenamelog.log, format%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s, datefmt%Y-%m-%d %H:%M:%S %p, levellogging.INFO ) #level日志等级 CRITICAL 50 FATAL CRITICAL ERROR 40 WARNING 30 WARN WARNING INFO 20 DEBUG 10 NOTSET 0 logging.critical() logging.fatal() logging.error() logging.waring() logging.info() logging.debug()collectionsnamedtuple(name,[属性list])namedtuple是一个函数它用来创建一个自定义的tuple对象并且规定了tuple元素的个数并可以用属性而不是索引来引用tuple的某个元素 from collections import namedtuple P namedtuple(Point, [x, y]) p P(1, 2) p.x 1 p.y 2deque使用list存储数据时按索引访问元素很快但是插入和删除元素就很慢了因为list是线性存储数据量大的时候插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表适合用于队列和栈 from collections import deque q deque([a, b, c]) q.append(d) q.appendleft(o) q deque([o, a, b, c, d])deque除了实现list的append()和pop()外还支持appendleft()和popleft()defaultdictdefaultdict创建的字典在引用的key不存在时返回一个默认值 from collections import defaultdict dd defaultdict(lambda: N/A) dd[key1] a dd[key1] a dd[key2] N/AOrderedDictOrderedDict会根据插入key的顺序排序 from collections import OrderedDict od OrderedDict() od[a] 1 od[c] 2 od[b] 3 od OrderedDict([(a, 1), (c, 2), (b, 3)])itertoolschain()chain()可以把一组迭代对象串联起来形成一个更大的迭代器 import itertools for i in itertools.chain(abc, xyz, def): ... print(i) ... a b c x y z d e f原文地址

相关新闻

Shell脚本入门(一)基础语法

Shell脚本入门(一)基础语法

目录 1、Shell解析器 2、变量 3、运算符 4、条件判断 5、流程控制 6、read函数 1、Shell解析器 默认在CentOS使用的是bash 2、变量 2.1 系统变量 $USER、$SHELL、$HOME、$PWD 2.2 自定义变量 ①定义变量: 变量值 注意:等号两边不能有空格。 ②…

2026/7/28 18:34:08阅读更多 →
物联网设备安全芯片SE050与PIC18F2585集成指南

物联网设备安全芯片SE050与PIC18F2585集成指南

1. 为什么物联网设备需要专用安全芯片?在物联网设备开发中,安全性常常是最容易被忽视却又至关重要的环节。传统MCU(如PIC18F2585)虽然能完成基础控制任务,但在面对现代网络安全威胁时往往力不从心。去年某智能家居厂商…

2026/7/28 18:34:08阅读更多 →
顺序表应用1:多余元素删除之移位算法

顺序表应用1:多余元素删除之移位算法

Problem Description 一个长度不超过10000数据的顺序表,可能存在着一些值相同的“多余”数据元素(类型为整型),编写一个程序将“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”(值相同的元素在表中…

2026/7/28 18:34:08阅读更多 →
YOLOv11改进|注意力机制|轻量化多尺度线性注意力机制(LiteMLA)

YOLOv11改进|注意力机制|轻量化多尺度线性注意力机制(LiteMLA)

1.多尺度线性注意力机制 题目:EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction GitHub地址:https://github.com/mit-han-lab/efficientvit 创新部分: 多尺度线性注意力机制(Multi-Scale Linear Attention): 论文提出了一种高效的多尺…

2026/7/28 22:17:12阅读更多 →
电厂运维数据怎么自动采集?解析企业级智能自动化实现路径与方案测评

电厂运维数据怎么自动采集?解析企业级智能自动化实现路径与方案测评

在工业与能源领域,电厂及相关设施的运维数据自动采集已从传统的“人工抄表”模式,全面转向基于数字化、网络化与智能化的全流程自动抓取与云端归档。这一转型不仅是技术迭代的体现,更是提升能源管控效率、确保生产安全及合规性的必然要求。根…

2026/7/28 22:17:12阅读更多 →
VCG拍卖机制:原理、实现与应用场景解析

VCG拍卖机制:原理、实现与应用场景解析

1. VCG机制核心概念解析VCG(Vickrey-Clarke-Groves)机制作为拍卖理论与算法博弈论中的经典模型,本质上是一种保证激励相容的分配与定价规则。我在研究广告竞价系统时首次接触到这个精妙的机制设计,其核心思想是通过巧妙的支付规则…

2026/7/28 22:17:12阅读更多 →
4 个维修隐坑|广州笔记本 WiFi 频繁断连重启自查,别盲目花钱换网卡

4 个维修隐坑|广州笔记本 WiFi 频繁断连重启自查,别盲目花钱换网卡

日常办公常见的 WiFi 异常困扰💻很多人办公时都遇到过这种糟心情况,笔记本连着 WiFi 好好的,刷网页、办公突然断网,图标转圈几秒后自动重连。看似小问题,频繁发作会直接打断办公进度、导致文件传输中断、线上会议意外掉…

2026/7/28 22:17:12阅读更多 →
LabVIEW与Arduino实现多路DS18B20温度采集:单总线组网与高效读取策略

LabVIEW与Arduino实现多路DS18B20温度采集:单总线组网与高效读取策略

1. 项目缘起与核心挑战上次我们聊了用LabVIEW和Arduino搞定单个DS18B20温度采集,算是把基础流程跑通了。但很多朋友在实际项目中,比如环境多点监测、设备温度场分析,一个传感器根本不够用。这时候,多路DS18B20的组网采集就成了刚需…

2026/7/28 22:17:12阅读更多 →
推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选

推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选

今天给大家带来推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选。国家统计局数据显示,2025年限额以上单位服装、鞋帽、针纺织品类零售额为15215亿元,比上年增长3.2%;同时,全国实物商品网上零售额…

2026/7/28 22:15:11阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →