用Python写个通讯录工具,怎么从命令行起步并保存数据?

Python可以通过不同方式开发个人通讯录管理工具。以下是几种实现示例: ### 简单的面向过程实现 ```python students = [] print("----------------------------") print("欢迎使用通讯录管理系统V1.0") print("[1]增加学员信息") print("[2]删除学员信息") print("[3]显示学员信息") print("[4]退出系统") print("----------------------------") while True: try: n = int(input("请输入你想执行的功能:")) if n == 1: code = input("请输入要录入的学生的学号:") name = input("请输入要录入的学生的姓名:") tel = input("请输入要录入的学生的电话:") sdt = {"学号": code, "姓名": name, "电话": tel} students.append(sdt) print(sdt) elif n == 2: # 这里可以实现删除功能,例如根据学号删除 del_code = input("请输入要删除的学生的学号:") for student in students: if student["学号"] == del_code: students.remove(student) print("删除成功") break else: print("未找到该学生") elif n == 3: for student in students: print(f"学号: {student['学号']}, 姓名: {student['姓名']}, 电话: {student['电话']}") elif n == 4: break else: print("输入的功能编号无效,请重新输入。") except ValueError: print("输入无效,请输入一个数字。") ``` 此示例中,使用一个列表`students`存储联系人信息,每个联系人信息以字典形式存储,包含学号、姓名和电话。通过用户输入的数字选择不同的功能,如增加、删除、显示联系人信息或退出系统。 ### 带有文件存储的实现 ```python import os FILENAME = "懒惰蜗牛通讯录.csv" print("--- 懒惰蜗牛通讯录 (v2.0 查看功能) ---") if not os.path.exists(FILENAME): print("通讯录还是空的哦,快去添加联系人吧!") else: print("--- 所有联系人 ---") with open(FILENAME, 'r', encoding='utf-8') as f: for line in f: clean_line = line.strip() parts = clean_line.split(',') print(f"姓名: {parts[0]}, 电话: {parts[1]}") ``` 该示例实现了查看存储在CSV文件中的联系人信息的功能。如果文件不存在,会提示用户去添加联系人;若文件存在,则读取文件内容并显示联系人姓名和电话。 ### 相关问题 1. 如何在Python通讯录管理工具中实现联系人信息的修改功能? 2. 怎样对Python通讯录管理工具进行数据加密存储? 3. 如何优化Python通讯录管理工具的性能,尤其是在处理大量联系人信息时? 4. 能否将Python通讯录管理工具与图形界面结合,如何实现? 5. 如何在Python通讯录管理工具中添加搜索联系人的功能?

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

Python-MacOS和Linux上的命令行ssh管理工具

Python-MacOS和Linux上的命令行ssh管理工具

标题"Python-MacOS和Linux上的命令行ssh管理工具"暗示了我们将使用Python编程语言创建一个命令行工具,该工具可以在Mac OS和Linux系统上简化SSH连接和管理的过程。Python因其简洁、易读的语法和丰富的库支持而成为...

python实现简单通讯录

python实现简单通讯录

python实现简单通讯录,供大家一起共同分享学习。

Python-一个HackerNews命令行CLI浏览界面

Python-一个HackerNews命令行CLI浏览界面

总之,“Python-一个HackerNews命令行CLI浏览界面”项目展示了Python在开发实用工具方面的强大能力,同时也涵盖了从网络请求、数据解析到用户交互等多个关键的编程概念。学习并理解这些知识点,对于提升个人的Python...

基于Python语言的腾讯云API命令行工具tencentcloud-cli设计源码

基于Python语言的腾讯云API命令行工具tencentcloud-cli设计源码

通过分析该项目的源码,我们可以学习到如何使用Python语言编写一个功能丰富、用户友好的命令行工具。这不仅仅是一个简单的工具,它还是一个集成化的解决方案,其中涉及到了网络编程、API调用、数据处理、异常管理等...

Python-Python实现的Google命令行标志模块

Python-Python实现的Google命令行标志模块

通过查阅这些文件,你可以学习如何安装、配置和使用GFlags,从而提升你的Python命令行工具开发能力。 总的来说,Google GFlags是Python开发中一个强大的工具,特别是对于需要处理复杂命令行选项的项目。它简化了...

Python-ttyd一个简单的命令行工具用来在Web上共享终端

Python-ttyd一个简单的命令行工具用来在Web上共享终端

Python-ttyd是一个基于Python的开源项目,它提供了一个便捷的命令行工具,允许用户在Web浏览器中实时共享和访问远程终端。这个工具对于开发者、系统管理员或者任何需要远程协作和控制终端的人来说非常实用,因为它...

Python-goLinux命令行使用谷歌搜索的Python工具

Python-goLinux命令行使用谷歌搜索的Python工具

标题中的“Python-goLinux命令行使用谷歌搜索的Python工具”指的是一个使用Python编程语言开发的命令行工具,该工具能够实现在Linux操作系统环境下通过谷歌搜索引擎进行搜索。这个工具可能为用户提供了在终端中方便...

Python-Vocab一个与命令行集成的轻量级在线词典

Python-Vocab一个与命令行集成的轻量级在线词典

总结起来,Python-Vocab 是一个方便的命令行工具,它利用 Python 的强大功能,让开发者在终端环境下就能快速查询词汇。这个工具体现了 Python 在简化开发流程和提高生产力方面的优势,对于习惯命令行操作的程序员来...

课程设计--Python通讯录管理系统.zip

课程设计--Python通讯录管理系统.zip

【标题】:“Python通讯录管理系统”是一门课程设计项目,主要目标是利用Python编程语言开发一个功能完善的通讯录管理软件。这个系统能够帮助用户存储、查找、编辑和删除联系人信息,提供便捷的通讯录管理体验。 ...

Python-pythonterminalmenucli一个快速创建命令行菜单的工具

Python-pythonterminalmenucli一个快速创建命令行菜单的工具

Python是一种广泛使用的编程语言,尤其在开发命令行界面(CLI)工具方面表现出色。`python-terminal-menu-cli` 是一个专为Python设计的库,旨在帮助开发者快速构建功能丰富的命令行菜单系统。这个库使得在终端中创建...

Python-命令行磁力链接查询工具

Python-命令行磁力链接查询工具

在Python开发中,命令行工具的创建往往依赖于标准库中的`argparse`模块,用于处理命令行参数和选项。此外,磁力链接查询可能涉及到对BT协议的理解,包括信息散列(Info Hash)的概念,它是磁力链接的核心组成部分,...

Python-MacCLI管理Mac系统的终极命令行工具

Python-MacCLI管理Mac系统的终极命令行工具

Mac CLI是Python开发的一款针对Mac系统的命令行工具,它结合了Python的强大力量和命令行的高效,为Mac用户提供了一种全新的系统管理方式。通过掌握Mac CLI,用户不仅可以提升工作效率,还能深入理解并控制自己的Mac...

Python-Pythonpy可看作是命令行版的瑞士军刀

Python-Pythonpy可看作是命令行版的瑞士军刀

Pythonpy 是一个强大的命令行工具,它允许用户在终端中直接执行 Python 代码,而无需启动 Python 解释器。这个工具对于快速测试、脚本编写和自动化任务来说非常有用,尤其是对于那些频繁在命令行环境中工作的 IT ...

基于Python实现的网易云音乐命令行包装

基于Python实现的网易云音乐命令行包装

这个项目是利用Python语言开发的一个命令行工具,目的是为了提供一种简洁、高效的方式来与网易云音乐进行交互。通过在终端中运行特定的命令,用户可以实现对网易云音乐的各种操作,如搜索歌曲、播放音乐、查看歌单等...

基于Shell和Python开发的tone-cli命令行工具设计源码

基于Shell和Python开发的tone-cli命令行工具设计源码

基于Shell和Python开发的tone-cli命令行工具设计源码,不仅展示了如何利用这两种强大的编程语言创建实用的工具,也反映了当前软件开发中对效率和跨平台能力的追求。 tone-cli命令行工具的源码中包含了多种类型的...

Python-SoCLI是一个用Python编写的StackOverflow命令行工具

Python-SoCLI是一个用Python编写的StackOverflow命令行工具

这对于提升Python编程技能和理解命令行工具的实现原理非常有帮助。 **总结** Python-SoCLI是将Stack Overflow的强大资源与Python的便捷性结合的优秀示例,为开发者提供了一种高效的问题解决途径。它不仅方便了日常...

python做的通讯录

python做的通讯录

用python编写的通讯录,正则匹配的电话和邮箱,希望大家喜欢

Python-dockerpushssh是一个命令行工具用于通过ssh将docker映像从本地推送到远程计算机

Python-dockerpushssh是一个命令行工具用于通过ssh将docker映像从本地推送到远程计算机

docker-push-ssh是一个命令行工具,用于通过ssh将docker映像从本地推送到远程计算机

Python命令行工具获取OpenWeatherMap天气数据

Python命令行工具获取OpenWeatherMap天气数据

12. 使用该命令行工具需要具备基本的Python编程知识,包括Python环境的搭建、基础语法的理解以及requests库的使用方法。 13. 在实际应用中,用户需要遵循OpenWeatherMap平台的使用规则,并妥善保管自己的API密钥,...

Python-Webenchmark一款基于命令行的网站压测小工具

Python-Webenchmark一款基于命令行的网站压测小工具

Python-Webenchmark是一款轻量级的命令行工具,专为Web应用程序的压力测试而设计。它允许开发者和系统管理员快速、便捷地评估网站性能,通过模拟多种HTTP请求方法(GET, POST, PUT, DELETE, HEAD)来测试服务器的...

最新推荐最新推荐

recommend-type

Python爬取数据保存为Json格式的代码示例

在本篇内容中,我们将探讨如何使用Python进行网页爬虫并把抓取的数据保存为JSON格式。 首先,我们需要导入必要的库。在给出的代码示例中,可以看到导入了`urllib.request`用于发送HTTP请求,`BeautifulSoup`用于...
recommend-type

python保存数据到本地文件的方法

以下将详细讲解如何使用Python将不同类型的数据保存到本地文件,包括文本文件(如`.txt`)和JSON格式的文件(如`.json`)。 1. **保存列表为.txt文件** 在Python中,我们可以使用内置的`open()`函数以写入模式('...
recommend-type

一个简单的python程序实例(通讯录)

这个简单的Python程序实例展示了如何使用Python基础语法、文件操作、类和对象以及数据序列化来实现一个基本的管理工具。它提供了增加、删除和修改联系人信息的功能,并通过用户界面进行交互。为了使程序更加健壮和...
recommend-type

python实现登录并保存cookie的方法示例

在Python编程中,登录网站并保存Cookie是一种常见的需求,特别是在自动化测试、数据抓取或模拟用户行为时。本文将详细讲解如何使用Python实现12306登录并保存Cookie的方法,以便于后续的请求能够保持登录状态。 ...
recommend-type

python实现写数字文件名的递增保存文件方法

在Python中,`numpy`库是用于数值计算的强大工具,它提供了` savetxt()`函数来方便地将数组数据保存到文本文件。而文件名的动态生成则涉及到字符串格式化,这是Python中构建动态字符串的一种方式。 下面我们将逐步...
recommend-type

学生成绩管理系统C++课程设计与实践

资源摘要信息:"学生成绩信息管理系统-C++(1).doc" 1. 系统需求分析与设计 在进行学生成绩信息管理系统开发前,首先需要进行系统需求分析,这是确定系统开发目标与范围的过程。需求分析应包括数据需求和功能需求两个方面。 - 数据需求分析: - 学生成绩信息:需要收集学生的姓名、学号、课程成绩等数据。 - 数据类型和长度:明确每个数据项的数据类型(如字符串、整型等)和长度,例如学号可能是字符串类型且长度为一定值。 - 描述:详细描述每个数据项的意义,以确保系统能够准确处理。 - 功能需求分析: - 列出功能列表:用户界面应提供清晰的操作指引,列出所有可用功能。 - 查询学生成绩:系统应能通过学号或姓名查询学生的成绩信息。 - 增加学生成绩信息:允许用户添加未保存的学生成绩信息。 - 删除学生成绩信息:能够通过学号或姓名删除已经保存的成绩信息。 - 修改学生成绩信息:通过学号或姓名修改已有的成绩记录。 - 退出程序:提供安全退出程序的选项,并确保所有修改都已保存。 2. 系统设计 系统设计阶段主要完成内存数据结构设计、数据文件设计、代码设计、输入输出设计、用户界面设计和处理过程设计。 - 内存数据结构设计: - 使用链表结构组织内存中的数据,便于动态增删查改操作。 - 数据文件设计: - 选择文本文件存储数据,便于查看和编辑。 - 代码设计: - 根据功能需求,编写相应的函数和模块。 - 输入输出设计: - 设计简洁明了的输入输出提示信息和操作流程。 - 用户界面设计: - 用户界面应为字符界面,方便在命令行环境下使用。 - 处理过程设计: - 设计数据处理流程,确保每个操作都有明确的处理逻辑。 3. 系统实现与测试 实现阶段需要根据设计阶段的成果编写程序代码,并进行系统测试。 - 程序编写: - 完成系统设计中所有功能的程序代码编写。 - 系统测试: - 设计测试用例,通过测试用例上机测试系统。 - 记录测试方法和测试结果,确保系统稳定可靠。 4. 设计报告撰写 最后,根据系统开发的各个阶段,撰写详细的设计报告。 - 系统描述:包括问题说明、数据需求和功能需求。 - 系统设计:详细记录内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。 - 系统测试:包括测试用例描述、测试方法和测试结果。 - 设计特点、不足、收获和体会:反思整个开发过程,总结经验和教训。 时间安排: - 第19周(7月12日至7月16日)完成项目。 - 7月9日8:00到计算机学院实验中心(三楼)提交程序和课程设计报告。 指导教师和系主任(或责任教师)需要在文档上签名确认。 系统需求分析: - 使用表格记录系统需求分析的结果,包括数据项、数据类型、数据长度和描述。 - 分析数据项如学生成绩信息、状态器、链表节点等,确定其属性和行为。 以上就是文档中提到的学生成绩信息管理系统开发的关键知识点。开发此类系统需要熟练掌握C++编程基础,了解面向对象的程序设计思想,以及熟悉文件操作和链表等数据结构的应用。此外,良好的软件开发流程意识、测试意识和文档撰写能力也是必不可少的。
recommend-type

别再手动拖拽了!用Lumerical脚本批量创建FDTD仿真结构(附完整代码)

# 告别低效建模:Lumerical脚本自动化实战指南 在光子学仿真领域,时间就是科研生命线。当同行还在GUI界面里反复点击菜单时,你已经用脚本批量生成了20组参数化结构——这不是未来场景,而是每位FDTD用户都应该掌握的基础生产力革命。本文将彻底改变你与Lumerical的交互方式,从手动拖拽的农耕时代,跃迁到自动化建模的工业文明。 ## 1. 为何脚本建模是必然选择 2019年Nature Photonics的一项研究显示,科研工作者在仿真工具上平均浪费37%的时间在重复性操作上。对于需要参数扫描的纳米光学结构设计,这个数字可能更高。手动创建10个不同尺寸的纳米柱阵列意味着: -
recommend-type

Java邮件解析任务中,如何安全高效地提取HTML邮件内容并避免硬编码、资源泄漏和类型转换异常?

<think>我们被要求优化一段Java代码,该代码用于处理邮件(特别是来自特定发件人的构建通知邮件)。代码的主要问题包括: 1. 重复获取邮件内容:在检查MIME类型后,多次调用`msg[i].getContent()`,这可能导致性能问题或流关闭异常。 2. 类型转换问题:直接将邮件内容转换为`Multipart`而不进行类型检查,可能引发`ClassCastException`。 3. 代码结构问题:逻辑嵌套过深,可读性差,且存在重复代码(如插入邮件详情的操作在两个地方都有)。 4. 硬编码和魔法值:例如在解析HTML表格时使用了硬编码的索引(如list3.get(10)),这容易因邮件
recommend-type

RH公司应收账款管理优化策略研究

资源摘要信息:"本文针对RH公司的应收账款管理问题进行了深入研究,并提出了改进策略。文章首先分析了应收账款在企业管理中的重要性,指出其对于提高企业竞争力、扩大销售和充分利用生产能力的作用。然后,以RH公司为例,探讨了公司应收账款管理的现状,并识别出合同管理、客户信用调查等方面的不足。在此基础上,文章提出了一系列改善措施,包括完善信用政策、改进业务流程、加强信用调查和提高账款回收力度。特别强调了建立专门的应收账款回收部门和流程的重要性,并建议在实际应用过程中进行持续优化。同时,文章也意识到企业面临复杂多变的内外部环境,因此提出的策略需要根据具体情况调整和优化。 针对财务管理领域的专业学生和从业者,本文提供了一个关于应收账款管理问题的案例研究,具有实际指导意义。文章还探讨了信用管理和征信体系在应收账款管理中的作用,强调了它们对于提升企业信用风险控制和市场竞争能力的重要性。通过对比国内外企业在应收账款管理上的差异,文章总结了适合中国企业实际环境的应收账款管理方法和策略。" 根据提供的文件内容,以下是详细的知识点: 1. 应收账款管理的重要性:应收账款作为企业的一项重要资产,其有效管理关系到企业的现金流、财务健康以及市场竞争力。不良的应收账款管理会导致资金链断裂、坏账损失增加等问题,严重影响企业的正常运营和长远发展。 2. 应收账款的信用风险:在信用交易日益频繁的商业环境中,企业必须对客户信用进行评估,以便采取合理的信用政策,降低信用风险。 3. 合同管理的薄弱环节:合同是应收账款管理的法律基础,严格的合同管理能够保障企业权益,减少因合同问题导致的应收账款风险。 4. 客户信用调查:了解客户的信用状况对于预测和控制应收账款风险至关重要。企业需要建立有效的客户信用调查机制,识别和筛选信用良好的客户。 5. 应收账款回收策略:企业应建立有效的账款回收机制,包括定期的账款跟进、逾期账款的催收等。同时,建立专门的应收账款回收部门可以提升回收效率。 6. 应收账款管理流程优化:通过改进企业内部管理流程,如简化审批流程、提高工作效率等措施,能够提升应收账款的管理效率。 7. 应收账款管理策略的调整和优化:由于企业的内外部环境复杂多变,因此制定的管理策略需要根据实际情况进行动态调整和持续优化。 8. 信用管理和征信体系的作用:建立和完善企业内部信用管理体系和征信体系,有助于企业更好地控制信用风险,并在市场竞争中占据有利地位。 9. 对比国内外应收账款管理实践:通过研究国内外企业在应收账款管理上的不同做法和经验,可以借鉴先进的管理理念和方法,提升国内企业的应收账款管理水平。 综上所述,本文深入探讨了应收账款管理的多个方面,为RH公司乃至其他同类型企业提供了应收账款管理的改进方向和策略,对于财务管理专业的教育和实践都具有重要的参考价值。
recommend-type

新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构

# 新手别慌!用BingPi-M2开发板带你5分钟搞懂Tina Linux SDK目录结构 第一次拿到BingPi-M2开发板时,面对Tina Linux SDK里密密麻麻的文件夹,我完全不知道从哪下手。就像走进一个陌生的大仓库,每个货架上都堆满了工具和零件,却找不到操作手册。这种困惑持续了整整两天,直到我意识到——理解目录结构比死记硬背每个文件更重要。 ## 1. 为什么SDK目录结构如此重要 想象你正在组装一台复杂的模型飞机。如果所有零件都混在一个箱子里,你需要花大量时间寻找每个螺丝和面板。但如果有分门别类的隔层,标注着"机身部件"、"电子设备"、"紧固件",组装效率会成倍提升。Ti