Python 实现就业数据排序与查询:避开文件、编码及退出处理陷阱
以下是使用 Python 实现上述功能的代码: ```python # 读取就业数据文件 def read_data(file_path): data = [] try: with open(file_path, 'r', encoding='utf-8') as file: # 逐行读取文件内容 for line in file: # 按逗号分割每行内容 parts = line.strip().split(',') if len(parts) == 2: province = parts[0] # 将人数转换为整数 num = int(parts[1]) data.append((province, num)) except FileNotFoundError: print(f"文件 {file_path} 未找到。") return data # 降序排序数据 def sort_data(data): # 使用 Python 内置的 sorted 函数进行排序,按照人数降序排列 return sorted(data, key=lambda x: x[1], reverse=True) # 显示排序后的数据并写入文件 def display_and_write(data, output_file): print("排序后的数据:") with open(output_file, 'w', encoding='utf-8') as file: for province, num in data: # 打印省市名称和人数 print(f"{province}: {num}") # 将省市名称和人数写入文件 file.write(f"{province},{num}\n") # 查询省市的就业人数 def query_data(data): while True: province = input("请输入要查询的省市名称(输入 '退出' 结束查询):") if province == '退出': break found = False for p, num in data: if p == province: print(f"{province} 的就业人数为:{num}") found = True break if not found: print("查询不成功") # 主函数 def main(): input_file = "employ-data.txt" output_file = "employ-sort.txt" # 读取数据 data = read_data(input_file) if data: # 排序数据 sorted_data = sort_data(data) # 显示并写入排序后的数据 display_and_write(sorted_data, output_file) # 进行查询操作 query_data(sorted_data) if __name__ == "__main__": main() ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 确保“employ-data.txt”文件存在,并且文件内容格式正确,每行应为“省市名称,就业人数”的形式。 2. 在读取文件时,要注意文件的编码格式,避免出现乱码问题。 3. 在查询操作中,要处理好用户输入“退出”的情况,确保程序能正常结束。 ######[AI写代码神器 | 642点数解答 | 2025-12-01 00:11:55]
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)389
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)374
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)354
- 实验3:用面向对象编程改写发牌功能,附Python示例代码( | 1936点数解答 | 2024-03-24 21:24:54)320
- Java面向对象改写发牌功能:含初始化、显示、洗牌、发牌全流程实现( | 2187点数解答 | 2024-03-24 21:25:07)333
- Java面向对象编程:实现发牌功能全流程改写( | 3211点数解答 | 2024-03-24 21:27:14)354
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)468
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- Java代码实现从JSON数据中提取ID,涉及“数据”与“项目 - 知识库”结构(字节豆包 | 603点数解答 | 2025-04-15 22:48:51)244
- C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解(字节豆包 | 549点数解答 | 2025-11-16 20:19:06)88
- 编程揭秘:计算 𝑛! 在 𝑃 进制下末尾零个数的方法与代码实现(DeepSeek | 549点数解答 | 2026-01-11 17:49:54)51
- Java实战:用JFrame创建录入职工信息界面,“退出”按钮一键关闭窗口!(讯飞星火 | 601点数解答 | 2024-06-06 23:40:36)293