Python实现命令行通讯录实例教程

yizhihongxing

下面是“Python实现命令行通讯录实例教程”的完整攻略。

1. 程序说明

本程序是利用 Python 实现的命令行通讯录,可以添加,删除,查询和修改联系人信息。

2. 程序实现

2.1 安装依赖

在开始编写程序之前需要先安装相应依赖,使用以下命令可以一次性安装所需的所有依赖:

pip install Click PrettyTable

其中,Click 是一个用于创建 Python 命令行程序的库,PrettyTable 是一个用于生成漂亮的表格的库,两个库的安装都可以使用 pip 直接进行。

2.2 编写程序

首先,需要在命令行界面创建一个名为 contacts 的命令行工具,用于启动通讯录程序。代码如下:

import click

@click.group()
def contacts():
    pass

接着,需要添加一个子命令 add,用于添加联系人信息。代码如下:

from prettytable import PrettyTable

@click.command()
@click.option('--name', prompt='姓名', help='联系人姓名')
@click.option('--phone', prompt='电话', help='联系人电话')
@click.option('--email', prompt='邮箱', help='联系人邮箱')
def add(name, phone, email):
    table = PrettyTable(['姓名', '电话', '邮箱'])
    table.add_row([name, phone, email])
    click.echo(table)

在上述代码中,使用了 PrettyTable 库创建了一个表格,并在表格中添加了联系人信息,最后使用 click.echo() 函数将表格打印输出。

接下来添加子命令 delete,用于删除联系人信息。代码如下:

@click.command()
@click.option('--name', prompt='姓名', help='联系人姓名')
def delete(name):
    click.echo('正在删除 %s 信息...' % name)

在上述代码中,使用 click.echo() 函数输出删除提示信息,实现删除联系人信息的功能。

接着添加子命令 search,用于查询联系人信息。代码如下:

@click.command()
@click.option('--name', prompt='姓名', help='联系人姓名')
@click.option('--phone', prompt='电话', help='联系人电话')
def search(name, phone):
    table = PrettyTable(['姓名', '电话'])
    table.add_row([name, phone])
    click.echo(table)

在上述代码中,使用了 PrettyTable 库创建了一个表格,并在表格中添加了联系人姓名和电话信息,最后使用 click.echo() 函数将表格打印输出。

最后添加子命令 modify,用于修改联系人信息。代码如下:

@click.command()
@click.option('--name', prompt='姓名', help='联系人姓名')
@click.option('--phone', prompt='电话', help='联系人电话')
@click.option('--newphone', prompt='新电话', help='新联系人电话')
def modify(name, phone, newphone):
    click.echo('正在修改 %s 的电话号码为 %s...' % (name, newphone))

在上述代码中,使用 click.echo() 函数输出修改提示信息,实现修改联系人信息的功能。

将上述代码保存为 contacts.py 文件后,即可实现命令行通讯录程序的基本功能。

2.3 测试程序

在命令行界面运行以下命令,即可启动通讯录程序,并使用子命令 add 添加联系人信息:

python contacts.py add

示例结果如下:

姓名: Tom
电话: 123456789
邮箱: tom@example.com
+------+-----------+-----------------+
| 姓名 |   电话    |       邮箱      |
+------+-----------+-----------------+
| Tom  | 123456789 | tom@example.com |
+------+-----------+-----------------+

接着运行以下命令,使用子命令 delete 删除联系人信息:

python contacts.py delete --name Tom

示例结果如下:

正在删除 Tom 信息...

接着运行以下命令,使用子命令 search 查询联系人信息:

python contacts.py search --name Tom --phone 123456789

示例结果如下:

+------+-----------+
| 姓名 |   电话    |
+------+-----------+
| Tom  | 123456789 |
+------+-----------+

最后运行以下命令,使用子命令 modify 修改联系人信息:

python contacts.py modify --name Tom --phone 123456789 --newphone 987654321

示例结果如下:

正在修改 Tom 的电话号码为 987654321...

至此,完整示例演示结束。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现命令行通讯录实例教程 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python机器学习之神经网络(二)

    对于“python机器学习之神经网络(二)”,完整攻略如下: Python机器学习之神经网络(二) 神经网络详解 神经网络是一种人工智能技术,基于神经元的连接方式,可以进行各种各样的模型训练,比如分类、回归等,而且在图像识别、自然语言处理等领域也得到了广泛的应用。在神经网络中,我们常用的模型有单层神经网络、多层神经网络和卷积神经网络。 神经网络的模型大致可以…

    python 2023年5月23日
    00
  • Python使用指定字符长度切分数据示例

    接下来我将为你详细讲解 Python 使用指定字符长度切分数据的完整攻略。 什么是字符串切分? 在 Python 中,字符串是一个不可变的序列,其表示一串字符。字符串切分是指将一个字符串按照指定的字符长度进行分割,从而得到一个子字符串列表的过程。 如何进行字符串切分? 在 Python 中,可以使用字符串的切片(Slice)操作进行字符串切分。切片操作是指将…

    python 2023年6月5日
    00
  • Python多进程写入同一文件的方法

    以下是详细讲解“Python多进程写入同一文件的方法”的完整攻略。 1. 多进程写入同一文件的问题 在Python中,多进程写入同文件时,会出现文件内容错乱、数据丢失等问题。这是因为多个进程同时写入同一文件时,会出现竞争条件,致数据不一致。 为了解决这个问题,我们需要使用一些技巧和工具来确保多进程写入同一文件的正确性和可靠性。 2. 解决方法 在Python…

    python 2023年5月14日
    00
  • 利用python查看数组中的所有元素是否相同

    要利用Python查看数组中的所有元素是否相同,可以使用set()函数来实现。set()函数是Python中的一个内置函数,用于创建一个集合,其会自动去除集合中重复的元素,因此,如果数组中所有元素相同,将其转换为set集合后,集合中只剩下一个元素。通过这一点,我们可以判断数组中所有元素是否相同。 以下是具体的攻略: 1. 首先定义一个数组,并判断其中所有元素…

    python 2023年6月5日
    00
  • 如何利用python正确地为图像添加高斯噪声

    当我们处理图像时,我们经常需要添加噪声以模拟真实世界通信的不确定性。高斯噪声是一种常见的噪声类型,它遵循高斯分布。Python中有许多库可以帮助我们添加噪声。在本文中,我们将使用numpy和OpenCV库来生成高斯噪声和在图像上应用它。 1. 生成高斯噪声 为了生成高斯噪声,我们将使用numpy的random.normal函数。该函数接受均值、标准差和sha…

    python 2023年6月3日
    00
  • Python数据结构与算法之字典树实现方法示例

    Python数据结构与算法之字典树实现方法示例 什么是字典树 字典树是一种树型数据结构,用于较快地检查一个字符串是否是一个集合中的一个字符串。字典树通常用于字符串的搜索和排序,它的优点是减少无谓的字符串比较,查询效率比哈希表高。 字典树的实现方法 字典树的实现方法可以使用一个字典来表示节点的孩子,每个节点包括当前节点的值和一个指向下一个节点的指针。 以下是字…

    python 2023年5月13日
    00
  • 用Python从零实现贝叶斯分类器的机器学习的教程

    下面是详细讲解“用Python从零实现贝叶斯分类器的机器学习的教程”的完整攻略。 1. 什么是贝叶斯分类器 贝叶斯分类器是一种基于贝叶斯定理的分类器,它通过计算每个类别的先验概率和每个特征在每个类别中的条件概率来预测新数据的类别。贝叶斯分类器是一种简单而有效的分类器,它在文本分类、垃圾邮件过滤、情感分析等领域得到了广泛应用。 2. 实现贝叶斯分类器 以下是用…

    python 2023年5月14日
    00
  • Python实现学生成绩管理系统

    一、Python实现学生成绩管理系统 实现思路: 学生成绩管理系统是一种简单的数据库管理系统,要实现其主要分为以下几步: 创建数据库及表格。 实现添加学生信息功能。 实现添加学生成绩功能。 实现查询学生信息及成绩功能。 实现删除学生信息功能。 实现修改学生成绩功能。 创建数据库及表格 使用Python内置模块sqlite3创建一个数据库,该数据库包含学生信息…

    python 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部