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

下面是“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中,有一些特殊的文件和函数。它们在代码执行过程中扮演着重要的角色,简化了代码实现的过程。本文将对这些特殊的文件和函数进行简要分析。 特殊文件 __init__.py 在Python中,每个文件夹都可以作为一个模块被调用,其中的__init__.py文件作为该模块的初始化文件。该文件可以包含模块所需的全局变量…

    python 2023年5月13日
    00
  • Python解决走迷宫问题算法示例

    Python解决走迷宫问题算法示例 走迷宫问题是一个经典的搜索问题,目标是找到从起点到终点的一条路径。在Python中,我们可以使用深度优先搜索(DFS)、广度优先搜索(BFS)和A*搜索等算法来解决这个问题。以下是一个完整的攻略,包含了走迷宫问题的实现步骤和例代码。 走迷宫问题的实现步骤 走迷宫问题的实现步骤如下: 定义迷宫。迷宫可以用一个二维数组表示,其…

    python 2023年5月14日
    00
  • Python访问Redis的详细操作

    针对“Python访问Redis的详细操作”的完整攻略,我将会分为以下几个方面进行说明: 确认Python环境中是否已安装redis-py模块 连接Redis服务器并执行基本操作 执行数据类型相关的操作(字符串、列表、哈希、集合、有序集合) 示例说明 示例一:统计用户登录次数 示例二:用户签到系统 以下是详细的操作步骤: 1. 确认Python环境中是否已安…

    python 2023年5月14日
    00
  • Python中格式化format()方法详解

    Python中格式化format()方法详解 在Python中使用format()方法可以将一些变量或者常量转换成指定格式的字符串。format()方法可以和大括号{}一起使用,以指定替换目标,还可以接受参数来控制字符串的格式。 语法 以下是format()方法的基本语法: string.format(args) 这里的参数args可以是多种类型,例如字符串…

    python 2023年6月5日
    00
  • 常用的正则表达式集锦

    以下是“常用的正则表达式集锦”的完整攻略: 一、问题描述 在文本处理中,正则表达式是一种非常强大的工具。本文将详细讲解常用的正则表达式集锦,并提供两个示例说明。 二、解决方案 2.1 常用的正则表达式 以下是常用的正则表达式集锦: 匹配数字:\d 匹配非数字:\D 匹配字母或数字:\w 匹配非字母或数字:\W 匹配空格:\s 匹配非空格:\S 匹配任意字符:…

    python 2023年5月14日
    00
  • Python中浅拷贝的四种实现方法小结

    下面是Python中浅拷贝的四种实现方法小结的详细攻略。 标题 Python中浅拷贝的四种实现方法小结 简介 在Python中,一个对象的引用赋值给另一个变量时,实际上是把这个对象的地址复制给了这个变量。为了避免对原始变量的修改影响到新变量,通常需要进行拷贝。浅拷贝是拷贝了原对象的一份引用,而不是拷贝了原对象本身。本文将介绍Python中实现浅拷贝的四种方法…

    python 2023年5月14日
    00
  • python编写暴力破解FTP密码小工具

    下面是Python编写暴力破解FTP密码小工具的完整攻略: 思路 导入常用的ftplib、os等模块 读取字典文件,每个元素为一行密码,存放到list中 通过循环遍历用户名列表和密码列表,对每个用户名进行暴力破解 通过ftplib模块中FTP()函数建立ftp对象,并使用login()尝试登录 若成功登录,则打印出用户名和密码,结束程序 若失败,则继续尝试下…

    python 2023年5月13日
    00
  • python基础学习之如何对元组各个元素进行命名详解

    下面是针对“python基础学习之如何对元组各个元素进行命名”的详细攻略。 什么是元组? 元组是具有不可变性质的有序序列类型,可以存放多个值,其中的值可以是不同类型的。元组是用圆括号 () 包括起来的。例如: t = (1, 2, 3) 元组的命名方式 Python 提供了一种通过名称访问元组元素的方式,称之为“命名元组”(namedtuple)。它是继承自…

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