2026/4/17 17:45:37
网站建设
项目流程
临沂天元建设集团网站,花卉电子商务网站开发,辽宁工程建筑信息网,广东建设信息网专业版文章目录1. 文件和目录操作os - 操作系统接口pathlib - 面向对象的路径操作#xff08;Python 3.4#xff09;2. 系统相关sys - 系统相关参数和函数3. 日期和时间datetime - 日期和时间处理time - 时间访问和转换4. 数学运算math - 数学函数random - 生成随机数5. 数据序列化…文章目录1. 文件和目录操作os - 操作系统接口pathlib - 面向对象的路径操作Python 3.42. 系统相关sys - 系统相关参数和函数3. 日期和时间datetime - 日期和时间处理time - 时间访问和转换4. 数学运算math - 数学函数random - 生成随机数5. 数据序列化json - JSON 编码和解码pickle - Python 对象序列化6. 数据压缩和归档zipfile - ZIP 归档处理7. 网络和互联网urllib - URL 处理8. 数据类型和集合collections - 容器数据类型itertools - 迭代器工具9. 正则表达式re - 正则表达式10. 调试和测试logging - 日志记录pdb - Python 调试器实用示例项目文件管理器工具总结表最常用的内置模块Python提供了丰富的内置模块无需安装即可直接使用。1. 文件和目录操作os - 操作系统接口importos# 文件和目录操作print(os.getcwd())# 获取当前工作目录os.chdir(/path/to/dir)# 改变当前目录os.listdir(.)# 列出目录内容# 路径操作os.path.join(dir,file.txt)# 连接路径os.path.exists(file.txt)# 检查路径是否存在os.path.isdir(dirname)# 检查是否为目录os.path.isfile(filename)# 检查是否为文件os.path.getsize(file.txt)# 获取文件大小# 系统操作os.environ[PATH]# 环境变量os.system(ls -l)# 执行系统命令pathlib - 面向对象的路径操作Python 3.4frompathlibimportPath# 创建路径对象pPath(/home/user/documents)pPath.cwd()/file.txt# 路径拼接# 常用操作p.exists()# 检查是否存在p.is_file()# 是否为文件p.name# 文件名p.parent# 父目录p.suffix# 文件扩展名# 文件操作p.read_text()# 读取文本p.write_text(content)# 写入文本2. 系统相关sys - 系统相关参数和函数importsys# 命令行参数print(sys.argv)# 命令行参数列表# Python 解释器信息print(sys.version)# Python 版本print(sys.platform)# 操作系统平台print(sys.path)# 模块搜索路径# 标准输入输出sys.stdout.write(Hello\n)# 标准输出sys.stderr.write(Error\n)# 标准错误# 退出程序sys.exit(0)# 退出程序3. 日期和时间datetime - 日期和时间处理fromdatetimeimportdatetime,date,time,timedelta# 当前时间nowdatetime.now()print(now)# 2024-01-15 10:30:45.123456# 日期时间创建dtdatetime(2024,1,15,10,30,0)ddate(2024,1,15)ttime(10,30,0)# 格式化print(now.strftime(%Y-%m-%d %H:%M:%S))# 2024-01-15 10:30:45print(now.strftime(%A, %B %d))# Monday, January 15# 时间计算tomorrownowtimedelta(days1)last_weeknow-timedelta(weeks1)# 时间解析dtdatetime.strptime(2024-01-15,%Y-%m-%d)time - 时间访问和转换importtime# 时间戳print(time.time())# 当前时间戳秒# 休眠time.sleep(2)# 休眠2秒# 结构化时间local_timetime.localtime()print(time.strftime(%Y-%m-%d,local_time))# 性能计时starttime.perf_counter()# 执行一些操作endtime.perf_counter()print(f耗时:{end-start:.2f}秒)4. 数学运算math - 数学函数importmath# 基本数学函数print(math.sqrt(16))# 平方根: 4.0print(math.pow(2,3))# 幂运算: 8.0print(math.log(100,10))# 对数: 2.0# 三角函数print(math.sin(math.pi/2))# 正弦: 1.0print(math.degrees(math.pi))# 弧度转角度: 180.0# 常数print(math.pi)# π: 3.141592653589793print(math.e)# 自然常数: 2.718281828459045# 取整函数print(math.ceil(4.2))# 向上取整: 5print(math.floor(4.8))# 向下取整: 4random - 生成随机数importrandom# 随机数print(random.random())# [0.0, 1.0) 的随机浮点数print(random.randint(1,10))# [1, 10] 的随机整数# 序列操作items[1,2,3,4,5]random.shuffle(items)# 打乱序列print(random.choice(items))# 随机选择一个元素print(random.sample(items,3))# 随机选择多个不重复元素# 随机种子用于重现结果random.seed(42)# 设置随机种子5. 数据序列化json - JSON 编码和解码importjson# Python 对象转 JSON 字符串data{name:张三,age:25,scores:[90,85,95]}json_strjson.dumps(data,ensure_asciiFalse,indent2)print(json_str)# JSON 字符串转 Python 对象parsed_datajson.loads(json_str)print(parsed_data[name])# 文件操作withopen(data.json,w,encodingutf-8)asf:json.dump(data,f,ensure_asciiFalse)withopen(data.json,r,encodingutf-8)asf:loaded_datajson.load(f)pickle - Python 对象序列化importpickle data{name:李四,age:30}# 序列化到文件withopen(data.pkl,wb)asf:pickle.dump(data,f)# 从文件反序列化withopen(data.pkl,rb)asf:loaded_datapickle.load(f)6. 数据压缩和归档zipfile - ZIP 归档处理importzipfile# 创建 ZIP 文件withzipfile.ZipFile(archive.zip,w)aszf:zf.write(file1.txt)zf.write(file2.txt)# 读取 ZIP 文件withzipfile.ZipFile(archive.zip,r)aszf:print(zf.namelist())# 列出所有文件zf.extractall(extracted)# 解压所有文件7. 网络和互联网urllib - URL 处理fromurllibimportrequest,parse# 发送 HTTP 请求responserequest.urlopen(https://httpbin.org/json)dataresponse.read().decode(utf-8)print(data)# URL 编码解码params{q:python 教程,page:1}encodedparse.urlencode(params)print(encoded)# qpython%E6%95%99%E7%A8%8Bpage18. 数据类型和集合collections - 容器数据类型fromcollectionsimportCounter,defaultdict,deque,namedtuple# Counter - 计数器words[apple,banana,apple,orange,banana,apple]word_countCounter(words)print(word_count.most_common(2))# [(apple, 3), (banana, 2)]# defaultdict - 带默认值的字典dddefaultdict(list)dd[fruits].append(apple)dd[fruits].append(banana)print(dd[fruits])# [apple, banana]# deque - 双端队列dqdeque([1,2,3])dq.appendleft(0)# 左侧添加dq.append(4)# 右侧添加print(dq)# deque([0, 1, 2, 3, 4])# namedtuple - 命名元组Pointnamedtuple(Point,[x,y])pPoint(10,20)print(p.x,p.y)# 10 20itertools - 迭代器工具importitertools# 无限迭代器counteritertools.count(start1,step2)# 1, 3, 5, 7...# 组合迭代器# 排列permsitertools.permutations(ABC,2)# AB, AC, BA, BC, CA, CB# 组合combsitertools.combinations(ABC,2)# AB, AC, BC# 分组data[1,1,2,2,3,3]groupsitertools.groupby(data)# 分组相邻重复元素9. 正则表达式re - 正则表达式importre# 匹配text我的电话是: 138-1234-5678patternr\d{3}-\d{4}-\d{4}matchre.search(pattern,text)ifmatch:print(找到电话:,match.group())# 138-1234-5678# 查找所有emailsatest.com, bexample.comemail_patternr\b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\bemails_foundre.findall(email_pattern,emails)# 替换textPython is great, I love Pythonnew_textre.sub(rPython,JavaScript,text)print(new_text)# JavaScript is great, I love JavaScript10. 调试和测试logging - 日志记录importlogging# 配置日志logging.basicConfig(levellogging.INFO,format%(asctime)s - %(name)s - %(levelname)s - %(message)s,filenameapp.log)# 记录日志logging.debug(调试信息)logging.info(一般信息)logging.warning(警告信息)logging.error(错误信息)logging.critical(严重错误)pdb - Python 调试器importpdbdefproblematic_function(x,y):pdb.set_trace()# 设置断点resultx/yreturnresult# 常用 pdb 命令:# n - 执行下一行# c - 继续执行# q - 退出调试# p variable - 打印变量值实用示例项目文件管理器工具importosimportshutilfrompathlibimportPathfromdatetimeimportdatetimeclassFileManager:def__init__(self,base_path.):self.base_pathPath(base_path)deflist_files(self,pattern*):列出文件fileslist(self.base_path.glob(pattern))forfileinfiles:sizefile.stat().st_size mtimedatetime.fromtimestamp(file.stat().st_mtime)print(f{file.name:20}{size:10}{mtime:%Y-%m-%d%H:%M})defbackup_files(self,pattern*.txt,backup_dirbackup):备份文件backup_pathself.base_path/backup_dir backup_path.mkdir(exist_okTrue)forfileinself.base_path.glob(pattern):shutil.copy2(file,backup_path/file.name)print(f备份:{file.name})deffind_large_files(self,size_mb10):查找大文件size_limitsize_mb*1024*1024forfileinself.base_path.rglob(*):iffile.is_file()andfile.stat().st_sizesize_limit:size_mbfile.stat().st_size/(1024*1024)print(f{file.name}-{size_mb:.1f}MB)# 使用示例if__name____main__:fmFileManager()fm.list_files(*.py)fm.find_large_files(5)总结表最常用的内置模块模块主要用途使用频率os操作系统接口⭐⭐⭐⭐⭐sys系统参数和函数⭐⭐⭐⭐datetime日期时间处理⭐⭐⭐⭐⭐jsonJSON 数据处理⭐⭐⭐⭐⭐pathlib面向对象路径操作⭐⭐⭐⭐collections扩展容器类型⭐⭐⭐⭐re正则表达式⭐⭐⭐math数学运算⭐⭐⭐random随机数生成⭐⭐⭐itertools迭代器工具⭐⭐点击进入我的网站