Python实用代码实战:从日常工具到简单项目

Python实用代码实战:从日常工具到简单项目 Python 凭借其简洁的语法、丰富的库支持成为最受开发者欢迎的编程语言之一。它不仅能用于数据处理、人工智能等复杂领域更能快速实现各类日常实用工具帮助我们提升工作与学习效率。本文将围绕“实用”核心提供多个可直接运行的Python代码示例覆盖文件操作、数据处理、自动化工具等常见场景适合Python初学者上手练习也能为有经验的开发者提供便捷参考。一、基础实用工具文件操作类代码文件操作是编程中最基础也最常用的功能之一Python的os、pathlib等库简化了文件的创建、读取、修改与删除操作以下示例涵盖日常文件处理的核心需求。批量创建文件夹在整理文件、归档数据时经常需要批量创建同名前缀的文件夹通过代码可快速实现避免手动重复操作。importos def batch_create_folders(folder_prefix, count): 批量创建文件夹 :param folder_prefix: 文件夹名称前缀 :param count: 要创建的文件夹数量# 遍历生成文件夹名称从1开始编号foriinrange(1, count 1): folder_namef{folder_prefix}_{i:02d}# 02d确保编号两位数如01、02# 判断文件夹是否已存在避免重复创建ifnot os.path.exists(folder_name): os.makedirs(folder_name)print(f成功创建文件夹{folder_name})else: print(f文件夹{folder_name}已存在跳过创建)# 调用函数创建10个以数据归档为前缀的文件夹batch_create_folders(数据归档,10)2. 读取文本文件并统计关键词出现次数 处理文本数据时统计特定关键词的出现次数是常见需求以下代码可读取指定文本文件忽略大小写统计目标关键词的出现频率。 def count_keyword_in_file(file_path, keyword): 读取文本文件统计关键词出现次数忽略大小写 :param file_path: 文本文件路径相对路径或绝对路径 :param keyword: 要统计的关键词 :return: 关键词出现次数 try:# 以只读模式打开文件指定编码为utf-8避免中文乱码with open(file_path,r,encodingutf-8)as f:# 读取文件内容并转换为小写统一大小写contentf.read().lower()# 统计关键词出现次数关键词也转换为小写countcontent.count(keyword.lower())returncount except FileNotFoundError: print(f错误文件{file_path}不存在请检查路径是否正确)return0# 调用函数统计test.txt文件中python的出现次数file_pathtest.txt# 需确保该文件在当前目录下或填写绝对路径keywordpythoncountcount_keyword_in_file(file_path, keyword)print(f关键词{keyword}在文件中出现了{count}次)3. 批量修改文件名 当需要统一修改一个文件夹内所有文件的名称如添加前缀、后缀或替换特定字符时代码可实现自动化修改提升效率。importos def batch_rename_files(folder_path, old_str, new_str): 批量修改文件夹内文件的名称替换文件名中的指定字符 :param folder_path: 文件夹路径 :param old_str: 要替换的字符/字符串 :param new_str: 替换后的字符/字符串# 判断文件夹路径是否存在ifnot os.path.exists(folder_path): print(f错误文件夹{folder_path}不存在)return# 遍历文件夹内所有文件forfile_nameinos.listdir(folder_path):# 跳过文件夹只处理文件ifos.path.isfile(os.path.join(folder_path, file_name)):# 替换文件名中的指定字符new_file_namefile_name.replace(old_str, new_str)# 拼接旧文件路径和新文件路径old_file_pathos.path.join(folder_path, file_name)new_file_pathos.path.join(folder_path, new_file_name)# 重命名文件os.rename(old_file_path, new_file_path)print(f已修改{file_name} - {new_file_name})# 调用函数将文档文件夹内所有文件名中的旧替换为新folder_path文档batch_rename_files(folder_path,旧,新)二、数据处理类代码简单数据统计与分析Python的内置数据类型列表、字典、元组及第三方库如numpy可快速实现简单的数据统计与分析无需复杂的代码编写适合处理小型数据集。统计列表中元素的出现频率给定一个列表统计其中每个元素的出现次数常用于数据去重、频率分析以下代码使用字典实现简洁高效。def count_element_frequency(lst): 统计列表中每个元素的出现频率 :param lst: 输入列表 :return: 包含元素及其频率的字典 frequency{}forelementinlst:# 若元素已在字典中频率加1否则添加到字典频率设为1ifelementinfrequency: frequency[element]1else: frequency[element]1returnfrequency# 测试示例test_list[1,2,3,2,1,3,3,4,2,5,1,3]frequency_dictcount_element_frequency(test_list)print(元素出现频率)# 遍历字典格式化输出forelement, countinfrequency_dict.items(): print(f{element}: {count}次)2. 计算列表的基本统计量 对于数值型列表计算其总和、平均值、最大值、最小值等基本统计量是数据分析的基础操作以下代码结合内置函数实现。 def calculate_basic_statistics(lst): 计算数值型列表的基本统计量总和、平均值、最大值、最小值、中位数 :param lst: 数值型列表 :return: 包含统计量的字典# 检查列表是否为空ifnot lst: print(错误输入列表为空无法计算统计量)returnNone# 检查列表元素是否均为数值型ifnot all(isinstance(x,(int, float))forxinlst): print(错误列表中包含非数值型元素无法计算统计量)returnNone https://c.m.163.com/news/rec/YDJ0807U6TB842ZY.html https://c.m.163.com/news/rec/YDJ0567U6TB88MXY.html https://c.m.163.com/news/rec/YDJ0297U6TB86VYY.html https://c.m.163.com/news/rec/YDJ0807U6TB9U9YX.html https://c.m.163.com/news/rec/YDJ0297U6TB9E1YY.html https://c.m.163.com/news/rec/YDJ0977U6TB9KIWW.html# 计算总和totalsum(lst)# 计算平均值averagetotal / len(lst)# 计算最大值max_valmax(lst)# 计算最小值min_valmin(lst)# 计算中位数sorted_lstsorted(lst)nlen(sorted_lst)ifn %21: mediansorted_lst[n //2]else: median(sorted_lst[n //2-1] sorted_lst[n //2])/2return{总和:total,平均值:round(average,2),# 保留2位小数最大值:max_val,最小值:min_val,中位数:round(median,2)}# 测试示例num_list[12,15,18,20,16,14,19,17,13]statisticscalculate_basic_statistics(num_list)ifstatistics: print(列表基本统计量)forkey, valueinstatistics.items(): print(f{key}: {value})3. 使用numpy简化数据统计第三方库 numpy是Python中常用的数据处理库提供了丰富的函数可快速实现复杂的数值计算以下示例使用numpy简化基本统计量的计算。# 需先安装numpy库pip install numpyimportnumpy as np def calculate_statistics_with_numpy(lst): 使用numpy计算数值型列表的基本统计量 :param lst: 数值型列表 :return: 包含统计量的字典 try:# 将列表转换为numpy数组arrnp.array(lst,dtypenp.float64)# 计算各类统计量totalnp.sum(arr)averagenp.mean(arr)max_valnp.max(arr)min_valnp.min(arr)mediannp.median(arr)return{总和:round(total,2),平均值:round(average,2),最大值:round(max_val,2),最小值:round(min_val,2),中位数:round(median,2)}except ValueError: print(错误列表中包含非数值型元素无法计算统计量)returnNone# 测试示例num_list[12,15,18,20,16,14,19,17,13]statisticscalculate_statistics_with_numpy(num_list)ifstatistics: print(使用numpy计算的列表基本统计量)forkey, valueinstatistics.items(): print(f{key}: {value})三、自动化工具简单脚本实战Python可实现各类自动化脚本替代手动重复操作以下示例涵盖时间戳转换、随机密码生成等实用场景可直接复制使用。时间戳与格式化时间相互转换时间戳是计算机中表示时间的常用方式将其转换为人类可读的格式化时间或反之是日常开发中的常见需求。importtimedef timestamp_to_datetime(timestamp,format_str%Y-%m-%d %H:%M:%S): 时间戳转换为格式化时间 :param timestamp: 时间戳秒级如1710000000 :param format_str: 时间格式默认%Y-%m-%d %H:%M:%S年-月-日 时:分:秒 :return: 格式化后的时间字符串# 时间戳转换为本地时间local_timetime.localtime(timestamp)# 格式化时间returntime.strftime(format_str, local_time)def datetime_to_timestamp(datetime_str,format_str%Y-%m-%d %H:%M:%S): 格式化时间转换为时间戳 :param datetime_str: 格式化时间字符串如2024-03-10 12:00:00:param format_str: 时间格式需与datetime_str一致 :return: 秒级时间戳# 格式化时间转换为时间元组time_tupletime.strptime(datetime_str, format_str)# 转换为时间戳returnint(time.mktime(time_tuple))# 测试示例timestamp1710000000datetime_str2024-03-10 12:00:00# 时间戳转格式化时间print(f时间戳{timestamp}对应的时间{timestamp_to_datetime(timestamp)})# 格式化时间转时间戳print(f时间{datetime_str}对应的时间戳{datetime_to_timestamp(datetime_str)})2. 随机生成指定长度的密码 日常注册账号时需要生成安全的随机密码以下代码可生成包含大小写字母、数字、特殊符号的随机密码可指定密码长度。importrandomimportstring def generate_random_password(length12): 生成随机密码包含大小写字母、数字、特殊符号 :param length: 密码长度默认12位 :return: 随机密码字符串# 定义密码包含的字符集lowercasestring.ascii_lowercase# 小写字母a-zuppercasestring.ascii_uppercase# 大写字母A-Zdigitsstring.digits# 数字0-9symbolsstring.punctuation# 特殊符号如!#$%^*()# 合并所有字符集all_charslowercase uppercase digits symbols# 确保密码长度不小于8位安全建议iflength8: print(警告密码长度建议不小于8位已自动调整为8位)length8# 随机选择字符生成密码password.join(random.choice(all_chars)for_inrange(length))returnpassword# 测试示例生成16位随机密码passwordgenerate_random_password(16)print(f生成的随机密码{password})四、总结本文围绕“实用”核心提供了Python在文件操作、数据处理、自动化工具三个场景下的多个代码示例所有代码均可直接运行修改参数后可适配不同的实际需求。Python的优势在于“简洁高效”无需复杂的语法编写就能实现各类实用功能非常适合初学者上手练习。后续可基于这些基础代码进行扩展例如添加异常处理、优化交互体验或结合更多第三方库如pandas、matplotlib实现更复杂的数据处理与可视化。多动手实践、多修改调试才能更好地掌握Python编程技巧将其运用到日常工作与学习中。