36 KiB
中级 Python 开发人员的 13 个项目想法
原文:https://realpython.com/intermediate-python-project-ideas/
*立即观看**本教程有真实 Python 团队创建的相关视频课程。与书面教程一起观看,加深您的理解: 用 13 个中级项目想法 增长您的 Python 作品集
学习 Python 的基础是一次美妙的经历。但是仅仅学习的兴奋感可能会被对动手项目的渴望所取代。想要建立项目是正常的,因此需要项目想法。
但问题是,有些项目对于中级 Python 开发人员来说要么太简单,要么太难。本文将建议您作为中级 Python 开发人员可以参与的项目。这些项目想法将为你提供适当水平的挑战。
在这篇文章中,你将了解到:
- 建筑工程的重要性
- 您可以为其构建项目的主要平台
- 你可以着手的 13 个项目想法
- 关于项目工作的一些提示
免费奖励: 掌握 Python 的 5 个想法,这是一个面向 Python 开发者的免费课程,向您展示将 Python 技能提升到下一个水平所需的路线图和心态。
建设项目的重要性
参与项目对于推动您作为 Python 开发人员的职业发展至关重要。他们让你应用你所获得的技能和知识。
项目可以帮助您:
-
建立信心:无论软件的复杂程度如何,你都会更加相信自己创造软件的能力。
-
探索其他技术:你将了解构建完整产品所需的其他技术,如数据库、服务器和其他语言。
-
更好地理解编程概念:你将学会更好地编写代码,理解设计模式和面向对象编程等概念。
-
体验一个完整的软件开发生命周期:你将学习如何在编写代码之前进行规划,管理编码过程,更新软件。
作为 Python 开发人员,构建项目会有很多收获。
选择项目平台
你需要构建你的软件运行在一个平台上,让缺乏一定技术知识的人也能使用你的软件。web、桌面和命令行是您想要构建项目的三个主要平台。
网页
Web 应用程序是在 web 上运行的应用程序,只要可以访问互联网,就可以在任何设备上访问它们,而无需下载。如果你希望你的项目能被所有能上网的人访问,它需要是一个网络应用程序。
web 应用程序有后端和前端。后端是业务逻辑所在的部分:您的后端代码将操作和存储数据。前端是应用程序的界面:你的前端代码将决定一个 web 应用程序的外观。
作为一名中级 Python 开发人员,您主要关注的是后端代码。然而,前端代码也很重要,所以你需要一些关于 HTML和 CSS 的知识,也许还有 T2 JavaScript 来创建一个简单的界面。只要最基本的就够了。
另一个选择是对前端和后端都使用 Python。感谢 anvil 库,它消除了对 HTML、CSS 和 JavaScript 的需求,您可以专注于 Python 代码。
可以通过djangoflask等 web 框架用 Python 构建 web 应用。使用 Python 构建 web 应用程序的框架清单很长。有很多可供选择,但是django和flask仍然是最受欢迎的 web 框架。
桌面图形用户界面
每当你在电脑上执行任务时,无论是台式机还是笔记本电脑,都是通过应用程序完成的。作为一名中级 Python 开发者,你可以制作自己的桌面应用。
您不必学习任何前端技术来创建自己的图形用户界面(GUI)应用程序,就像您在 web 应用程序中看到的那样。您可以使用 Python 构建所有部分。
有一些构建桌面应用程序的框架。 PySimpleGUI 就是其中之一,对于一个中级 Python 开发者来说,它非常用户友好。
像 PyQt5 这样的高级 GUI 框架相当强大,但是它可能有一个陡峭的学习曲线。
您为桌面 GUI 创建的软件能够在任何 Windows、Linux 或 Mac 操作系统上工作。创建项目后,您所要做的就是将它编译成您所选择的操作系统的可执行文件。
命令行
命令行应用程序是那些在控制台窗口中工作的应用程序。这是 Windows 上的命令提示符,Linux 和 Mac 上的终端。
您可以点击使用 web 或 GUI 应用程序,但是您需要为命令行应用程序键入命令。命令行应用程序的用户需要有一些技术知识,因为他们需要使用命令。
命令行应用程序可能不如 web 或 GUI 应用程序漂亮或易用,但这并不意味着它们不如 web 或 GUI 应用程序强大。
您可以通过对文本应用颜色来改善命令行应用程序的外观。有可以用来上色的库,比如coloramacolored。你可以用一些颜色来增加情趣。
您可以使用诸如docopt``argparse和click 等框架来构建您的应用程序。
网络项目创意
在本节中,您将看到针对 web 的项目创意。这些项目创意可以归类为实用工具和教育工具。
以下是项目构想:
- 内容聚合器
- 正则表达式查询工具
- URL 缩写
- 便利贴
- 测验应用程序
内容聚合器
内容为王。它在网络上无处不在,从博客到社交媒体平台。为了跟上,你需要不断地在互联网上搜索新的信息。保持更新的一个方法是手动检查所有网站,看看有什么新帖子。但是这很费时间,也很累。
这就是内容聚合器的用武之地:内容聚合器从网上的各个地方获取信息,并将所有这些信息收集到一个地方。因此,你不必访问多个网站来获取最新信息:一个网站就足够了。
**注意:**按照这个基于项目的教程,用 Python 和 Django 为播客构建一个内容聚合器。使用定制管理命令、feedparser 和 django-apscheduler,您将设置一个应用程序来定期解析 Python 播客的 RSS 提要,并向您的用户显示最新的剧集。
有了内容聚合器,所有最新的信息都可以从一个聚合了所有内容的站点获得。人们可以看到他们感兴趣的帖子,并可以决定找到更多关于他们的信息,而不必在互联网上到处闲逛。
内容聚合器的例子
以下是内容聚合器理念的一些实现:
技术细节
这个项目理念的主要目标是聚合内容。首先,您需要知道您希望内容聚合器从哪些站点获取内容。然后,您可以使用诸如 requests 之类的库来发送 HTTP 请求,并使用 BeautifulSoup 来解析和抓取站点中的必要内容。
您的应用程序可以将其内容聚合作为后台进程来实现。像 celery 或apscheduler这样的库可以在这方面提供帮助。你可以试试apscheduler。它非常适合小型后台进程。
从各个网站抓取内容后,你需要把它保存在某个地方。因此,您将使用一个数据库来保存抓取的内容。
额外挑战
对于更艰难的挑战,你可以添加更多的网站。这将帮助你学会如何从网站上学习和提取信息。
您还可以让用户订阅您聚合的某些站点。然后,在一天结束时,内容聚合器会将当天的文章发送到用户的电子邮件地址。
正则表达式查询工具
你和我每天都和短信打交道。这篇文章也是正文,是有结构的。这让你更容易理解。有时,您需要在文本中查找某些信息,使用文本编辑器中的常规搜索工具可能会无效。
这就是正则表达式查询工具的用武之地。regex 是一组字符串,因此 regex 查询工具将检查查询的有效性。当正则表达式匹配文本中的模式时,它会告诉用户并突出显示匹配的模式。因此,您的正则表达式查询工具将检查用户传入的正则表达式字符串的有效性。
使用正则表达式查询工具,用户可以在网上快速检查他们的正则表达式字符串的有效性。这对他们来说更容易,而不是用文本编辑器检查字符串。
正则表达式查询工具示例
以下是正则表达式查询工具思想的一些实现:
技术细节
这类项目的主要目标是告诉用户输入的查询字符串的有效性。您可以让它给出肯定或否定的响应,如Query String Is Valid和Query String Is Invalid,用绿色实现肯定响应,用红色实现否定响应。
您不必从头开始实现查询工具。您可以使用 Python 的标准re库,您可以使用它在输入的文本上运行查询字符串。当查询字符串不匹配任何内容时,re库将返回None,当结果为正时,它将返回匹配的字符串。
有些用户可能不完全理解 regex,所以你可以制作一个页面来解释 regex 是如何工作的。您可以制作足够有趣的文档,让用户对学习和理解 regex 充满兴趣。
额外挑战
创建一个只返回正则表达式有效性的项目是没问题的。但是您也可以添加替换功能。这意味着应用程序将检查正则表达式的有效性,并允许用户用其他内容替换匹配的字符串。因此,该工具不再是查找工具,而是替换工具。
网址缩写
URL 可能会非常长,而且对用户不友好。当人们分享链接,甚至试图记住一个网址时,这是很困难的,因为大多数网址都充满了更难的字符,没有形成有意义的单词。
这就是网址缩写的用武之地。URL 缩写减少了 URL 中的字符或字母,使它们更容易阅读和记忆。像xyz.com/wwryb78&svnhkn%sghq?sfiyh这样的网址可以简称为xyz.com/piojwr。
有了 URL Shortener,使用 URL 变成了一种乐趣。
网址缩写示例
以下是 URL 缩写思想的一些实现:
- 一点点
- TinyURL
技术细节
这个项目想法的主要目标是缩短网址。该应用程序将完成的主要任务是缩短 URL,然后在访问缩短的 URL 时将用户重定向到原始 URL。
**注意:**如果你想通过一步一步的支持来构建一个网址缩短器,那么请查看用 FastAPI 和 Python 构建一个网址缩短器。
在应用程序中,用户将输入原始的 URL,他们将得到新的、缩短的 URL 作为结果。为此,您可以使用random和string模块的组合来为缩短的 URL 生成字符。
因为用户会在几天、几个月甚至几年后访问缩短的 URL,所以您需要将原始的和缩短的 URL 保存在数据库中。当请求进来时,应用程序检查 URL 是否存在,并重定向到原来的 URL,否则它重定向到 404 页面。
额外挑战
用随机字符生成一个短的 URL 比长的随机的 URL 更好。但是,您可以为用户提供更好的结果。您可以添加一个特性来定制 URL,这样用户就可以自己定制生成的 URL。
毫无疑问,自定义的xyz.com/mysite URL 比随机生成的xyz.com/piojwr URL 要好。
便利贴
一天有很多想法和想法是人之常情,但是忘记也是人之常情。解决忘记事情的一个方法是在事情消失之前把它们记下来。虽然有些被遗忘的想法和观念可能是微不足道的,但有些可能是非常强大的。
这就是便利贴的用武之地:便利贴是一种背面带有低粘性粘合剂的小纸,可以贴在文件、墙壁等表面上。便利贴让记下事情变得更容易。便利贴项目的想法是类似的。因为它是一个网络应用程序,所以它允许用户记下东西,让他们在任何地方都可以访问。
有了便利贴,人们现在可以在任何地方记下事情,而不用担心忘记事情或放错笔记——这是物理笔记的一种可能性。
便利贴示例
以下是便利贴创意的一些实现:
技术细节
这个项目的主要目标是让用户记下想法。这意味着每个用户都有自己的笔记,所以应用程序需要有一个帐户创建功能。这确保了每个用户的笔记对他们来说是私有的。
django自带用户认证系统,所以可能是个不错的选择。您可以使用其他框架,如bottle或flask,但是您必须自己实现用户认证系统。
由于用户可能需要将他们的笔记放在不同的部分,实现一个允许用户对他们的笔记进行分类的特性将使应用程序更加有用。
举个例子,你可能需要关于算法和数据结构的笔记,所以你需要能够把这些笔记分门别类。
您需要存储每个用户的信息和笔记,因此数据库成为这个项目的一个重要部分。如果您想使用一个 MySQL 数据库或 PostgreSQL 数据库的psycopg2模块,可以使用MySQLdb模块。您还可以使用其他模块,但这完全取决于您选择使用的数据库。
额外挑战
既然用户忘记他们的想法是人之常情,那么他们忘记他们甚至在某个地方做了笔记也是人之常情。您可以添加一个功能来提醒用户他们的笔记。这个特性将允许用户设置提醒的时间,所以应用程序将通过电子邮件发送提醒给用户。
测验应用程序
知识就是力量。世界上有如此多的东西需要学习,测验有助于测试对这些概念的理解。作为一名中级 Python 开发人员,您不需要了解该语言的所有内容。参加考试是找出你不完全理解的东西的一种方法。
**注意:**如果你想一步一步地构建一个测验,你可以查看用 Python 构建一个测验应用。
这就是问答应用程序的用武之地。测验应用程序将向用户提出问题,并期待这些问题的正确答案。可以将测验应用程序想象成一种问卷。
使用测验应用程序,可以称为管理员的特殊用户将被允许创建测试,因此普通用户可以回答问题并测试他们对测验主题的理解。
问答应用示例
下面是测验应用程序思想的一些实现:
技术细节
这个项目的主要目标是设置测验,并让人们回答它们。因此,用户应该能够设置问题,其他用户应该能够回答这些问题。该应用程序将显示最终分数和正确答案。
如果您希望用户能够记录他们的分数,您可能需要实现一个帐户创建功能。
创建测试的用户应该能够通过简单地上传一个文本文件来创建带有问题和答案的测试。该文本文件将有一个您可以决定的格式,因此应用程序可以从文件转换为测验。
你需要为这个项目实现一个数据库。该数据库将存储每个用户的问题、可能的答案、正确答案和分数。
额外挑战
对于更多的挑战,您可以允许用户在测验中添加计时器。这样,测验的创建者可以确定用户在测验中的每个问题上应该花费多少秒或多少分钟。
如果能有一个测验分享功能就太好了,这样用户就可以和其他平台上的朋友分享有趣的测验。
GUI 项目创意
在本节中,您将看到图形用户界面的项目构想。这些项目创意可以分为娱乐、金融和实用工具。
以下是项目构想:
- MP3 播放器
- 警报工具
- 文件管理器
- 费用跟踪器
MP3 播放器
如今,音频和文本一样重要,甚至更重要。由于音频文件是数字文件,你需要一个可以播放它们的工具。没有播放器,您将永远无法听到音频文件的内容。
这就是 MP3 播放器的用武之地。MP3 播放器是一种播放 MP3 和其他数字音频文件的设备。这个 MP3 播放器 GUI 项目想法试图模仿物理 MP3 播放器。你可以开发软件,让你在台式机或笔记本电脑上播放 MP3 文件。
当您完成构建 MP3 播放器项目时,用户可以播放他们的 MP3 文件和其他数字音频文件,而不必购买物理 MP3 播放器。他们可以用电脑播放 MP3 文件。
MP3 播放器示例
以下是 MP3 播放器理念的一些实现:
技术细节
这个项目的主要目标是允许用户播放 MP3 和数字音频文件。为了吸引用户,应用程序必须有一个简单但漂亮的用户界面。
你可以有一个列出可用 MP3 文件的界面。您还可以让用户选择列出其他非 MP3 的数字音频文件。
用户还期望 MP3 播放器具有显示正在播放的文件的信息的界面。您可以包括的一些信息有文件名、文件长度、播放量和未播放量,以分钟和秒为单位。
Python 有可以播放音频文件的库,比如 pygame ,让你用几行代码就能处理多媒体文件。还可以查看pymediasimpleaudio。
这些库可以处理大量的数字音频文件。它们可以处理其他文件类型,而不仅仅是 MP3 文件。
您还可以实现允许用户创建播放列表的功能。为此,您需要一个数据库来存储创建的播放列表的信息。Python 的sqlite3模块允许你使用 SQLite 数据库。
在这种情况下,SQLite 数据库是更好的选择,因为它是基于文件的,比其他 SQL 数据库更容易设置。虽然 SQLite 是基于文件的,它比常规文件更适合保存数据。
额外挑战
对于更令人兴奋的挑战,您可以添加一个功能,允许 MP3 播放器重复当前播放的文件,甚至随机播放要播放的文件列表。
还可以实现一个功能,允许用户提高或降低音频文件的播放速度。用户会发现这很有趣,因为他们可以比平时更慢或更快地播放文件。
报警工具
就像他们说的,“时间不等人。”但是随着我们生活中许多事情的发生,很难不忘记时间。为了能够掌握时间,需要一个提醒。
这就是报警工具的用武之地。警报器是一种在特定条件下发出声音或视觉信号的装置。这个报警工具项目的想法是试图建立一个软件报警。当满足特定条件时,警报工具会发出声音信号。设定时间是这种情况下的特定条件。
使用闹铃工具,用户可以设置闹铃,在一天中的特定时间提醒他们一些事情。警报工具项目将在用户的笔记本电脑或桌面设备上工作,因此他们不必购买物理计时器。
报警工具示例
以下是警报工具理念的一些实现:
技术细节
这个项目的主要目标是在一天中的特定时间激活音频信号。因此,定时和要播放的音频信号是报警工具最重要的部分。
警报工具应该允许用户创建、编辑和删除警报。它还应该有一个列出所有警报的界面,前提是它们没有被用户删除。因此,它应该列出活动和非活动的警报。
由于是闹铃,应用程序必须在设定的时间播放铃声。有播放音频的库,像 pygame 库。
在您的代码逻辑中,应用程序必须不断检查设置的报警时间。当时间到了,它会触发一个功能来播放闹铃。
由于应用程序将检查设置的报警时间,这意味着应用程序必须将报警保存在数据库中。数据库应该存储像报警日期、时间和音调位置这样的东西。
额外挑战
作为一个额外的功能,您可以允许用户设置重复报警。他们可以设置闹钟,在每周的某一天的某个时间响起。例如,可以在每周一下午 2:00 设置闹钟。
您还可以添加一个暂停功能,这样您的用户就可以暂停提醒,而不仅仅是解除它们。
文件管理器
普通个人电脑用户个人电脑上的文件数量相当多。如果所有这些文件都放在一个目录中,将很难导航和找到文件或目录。因此,有必要合理地安排和管理这些文件。
这就是文件管理器的用武之地。文件管理器允许用户通过用户界面管理文件和目录。虽然可以通过命令行管理文件,但并非所有用户都知道如何操作。
使用文件管理器,用户可以正确地安排、访问和管理他们的文件和目录,而不需要知道如何使用命令行。文件管理器允许用户执行的一些任务包括复制、移动和重命名文件或目录。
文件管理器工具示例
以下是文件管理器思想的一些实现:
技术细节
文件管理器项目的主要目标是给用户一个界面来管理他们的文件。用户想要一个文件管理器,它有一个看起来不错并且容易使用的文件管理工具。
您可以使用PySimpleGUI库通过强大的小部件创建独特的用户界面,而不必处理大量的复杂性。
您的用户应该能够执行简单的任务,如创建新目录或空文本文件。他们还应该能够复制和移动文件或目录。
对于这个项目来说,sys、os和shutil库将会非常有用,因为当用户点击离开时,它们可以用来在后台对文件执行操作。
网格和列表视图是当今流行的视图,因此您可以在应用程序中实现这两种视图。这为用户提供了选择适合他们的视图选项的选项。
额外挑战
为了让文件管理器更高级一点,你可以实现一个搜索特性。因此用户可以搜索文件和目录,而不必手动查找。
您还可以实现排序功能。这将允许用户根据不同的顺序对文件进行排序,例如时间、字母顺序或大小。
费用跟踪器
我们有日常开销,从杂货到衣服到账单。开支如此之多,以至于忘记它们并一直花下去直到我们几乎没有现金是很正常的。追踪器可以帮助人们观察他们的开销。
这就是费用跟踪器的用武之地。费用追踪器是一个软件工具,允许用户追踪他们的费用。它还可以分析费用,这取决于它有多先进,但现在让我们保持简单。
使用费用跟踪器,用户可以设置预算并跟踪他们的支出,以便做出更好的财务决策。
费用追踪器示例
以下是费用追踪器理念的一些实现:
- 布迪
- gnucash
技术细节
这个项目的主要目标是跟踪用户的费用。必须进行一些统计分析,才能给用户提供正确的费用信息,帮助他们更好地消费。
虽然跟踪费用是关键,但一个好的界面也很重要。使用PySimpleGUI,你可以创建一个独特的界面来改善用户的体验。
PyData 库,比如pandas和matplotlib,对于构建费用跟踪器很有帮助。
pandas 库可用于数据分析, matplotlib 库可用于绘制图形。图表将为用户提供一个直观的费用表示,而直观的表示通常更容易理解。
应用程序将从用户那里接收数据。这里的数据是输入的费用。因此,您必须将费用存储在数据库中。对于这个项目来说,SQLite 数据库是一个很好的数据库选择,因为它可以快速设置。您可以将sqlite3模块用于 SQLite 数据库。
额外挑战
为了让你的用户从这个项目中受益,他们必须定期输入他们的费用,这可能会让他们忘记。实现一个提醒功能可能对你有用。因此,应用程序将在一天或一周的特定时间发送通知,提醒他们使用费用跟踪器。
命令行项目理念
在本节中,您将看到命令行的项目思路。讨论的项目想法可以归类为实用工具。
以下是项目构想:
- 联系簿
- 站点连接检查器
- 批量文件重命名工具
- 目录树生成器
通讯录
我们每天都会遇到很多人。我们结交熟人和朋友。我们让他们的联系人保持联系。遗憾的是,保留收到的联系方式可能很难。一种方法是写下联系方式。但是这并不安全,因为实体书很容易丢失。
这就是联系簿项目的用武之地。通讯录是保存联系人详细信息的工具,如姓名、地址、电话号码和电子邮件地址。有了这个通讯录项目,您可以构建一个软件工具,人们可以使用它来保存和查找联系人的详细信息。
利用联系簿项目理念,用户可以保存他们的联系人,而丢失保存的联系人详细信息的风险更小。它总是可以从他们的计算机上通过命令行访问。
通讯录工具示例
有通讯录应用程序,但很少找到命令行通讯录产品,因为大多数是 web、移动或 GUI 应用程序。
**注意:**要深入了解如何构建基于 GUI 的通讯录,请查看用 Python、PyQt 和 SQLite 构建通讯录。
以下是联系簿理念的一些实现:
技术细节
这个项目的主要目标是保存联系方式。设置用户可以用来输入联系人详细信息的命令非常重要。您可以使用argparse或click命令行框架。它们抽象了很多复杂的东西,所以你只需要关注执行命令时要运行的逻辑。
您应该实现的一些功能包括删除联系人、更新联系人信息和列出保存的联系人的命令。您还可以允许用户使用不同的参数列出联系人,如字母顺序或联系人创建日期。
由于这是一个命令行项目,SQLite 数据库可以很好地保存联系人。SQLite 易于用户设置。您可以将联系人的详细信息保存在文件中,但是文件不能提供使用 SQLite 所能获得的好处,比如性能和安全性。
为了在这个项目中使用 SQLite 数据库,Python sqlite3模块将非常有用。
额外挑战
还记得数据库是如何存储在用户计算机上的吗?如果发生了什么事情,比如用户丢失了文件,该怎么办?这意味着他们也将失去联系方式。
您可以进一步挑战自己,将数据库备份到在线存储平台。为此,您可以每隔一段时间将数据库文件上传到云中。
您还可以添加一个命令,允许用户自己备份数据库。这样,如果数据库文件丢失,用户仍然可以访问联系人。
您应该注意到,您可能需要某种形式的标识,以便通讯录可以告诉哪个数据库文件属于哪个用户。实现用户认证特性是一种方法。
站点连接检查器
当你访问一个 URL 时,你期望在你的浏览器上得到所请求的页面。但情况并非总是如此。有时,网站可能会关闭,所以你不会得到想要的结果。相反,您将看到错误消息。你可以不断尝试一个关闭的网站,直到它出现,你得到你需要的信息。
这就是站点连通性检查器项目的用武之地。站点连接检查器访问 URL 并返回 URL 的状态:它是活动的还是非活动的。站点连接检查器将定期访问 URL,并返回每次访问的结果。
取代手动访问 URL,站点连接检查器可以为您完成所有的手动工作。这样,你将只得到检查的结果,而不必花时间在浏览器上,等待网站上线。
站点连接检查器示例
以下是站点连通性检查器理念的一些实现:
技术细节
这个项目的主要目标是检查网站的状态。因此,您需要编写代码来检查网站的状态。
您可以选择使用 TCP 或 ICMP 进行连接。 socket 模块是一个要检出的模块。也可以阅读 Python 中的 Socket 编程(指南)。
**注意:**查看用 Python 构建站点连通性检查器查看创建站点连通性检查器的分步示例。
通过您选择的框架,无论是docopt、click还是argparse框架,您都可以添加命令来允许用户在要检查的站点列表中添加和删除站点。
用户还应该能够启动该工具,停止它,并确定时间间隔。
由于您必须保存要检查的文件列表,您可以将它保存在一个文件中(只是一个站点列表),或者通过sqlite3模块使用 SQLite 数据库。
额外挑战
应用程序可以检查站点的连接状态,并将结果显示在命令行上。但是这将要求用户不断检查命令行。
您可以增加挑战并实现通知功能。通知功能可以是在后台播放的声音,以在网站状态发生变化时提醒用户。你需要一个数据库来存储网站以前的状态。这是该工具判断状态何时改变的唯一方式。
批量文件重命名工具
有时,您需要根据某些约定命名目录中的所有文件。例如,您可以用File0001.jpg命名目录中的所有文件,其中数字根据目录中文件的数量增加。手动完成这项工作可能会有压力且重复。
批量文件重命名工具允许用户重命名大量文件,而不必手动重命名文件。
这为用户节省了大量时间。这让他们免去了不得不做无聊的重复性工作和犯错误的麻烦。使用批量文件重命名工具,用户可以在几秒钟内正确地重命名文件。
批量文件重命名工具示例
下面是批量文件重命名思想的一些实现:
技术细节
这个项目想法的主要目标是重命名文件。因此,应用程序需要找到一种方法来操作目标文件。这个os、sys和shutil库对这个项目的大部分都很有用。
**注意:**要深入了解如何构建基于 GUI 的通讯录,请查看用 Python 和 PyQt 构建批量文件重命名工具。
您的用户将能够使用命名约定重命名目录中的所有文件。因此,它们应该能够传递选择的命名约定。如果您理解 regex 是如何工作的,那么regex模块将有助于匹配所需的命名模式。
用户可能希望在命令中传递一个命名约定,如myfiles,并期望该工具像myfilesXYZ一样重命名所有文件,其中XYZ是一个数字。他们还应该能够选择要重命名的文件所在的目录。
额外挑战
这个项目的主要挑战是重命名一个目录中的所有文件。但是用户可能只需要命名一定数量的文件。为了测试您的技能,您可以实现一个特性,允许用户选择要重命名的文件数量,而不是所有文件。
请注意,仅重命名一定数量的文件将需要该工具根据字母顺序、文件创建时间或文件大小对文件进行排序,这取决于用户的要求。
目录树生成器
目录就像家谱:每个目录都与其他目录有特定的关系。除了一个空的根目录,没有任何目录是独立的。
当您处理文件和目录时,很难看到目录之间的关系,因为您只能看到当前目录中存在的内容。您要么使用文件管理器,要么从命令行工作。
使用目录树生成器,您可以像查看树或地图一样查看文件和目录之间的关系。
这使得理解文件和目录的定位更加容易。当您解释某些概念时,目录树图很重要,目录树生成器可以更容易地获得文件和目录关系的可视化表示。
目录树生成器示例
下面是目录树生成器思想的一些实现:
技术细节
目录树生成器的主要目的是可视化文件和目录之间的关系。在列出所选目录中的文件和目录时,os库非常有用。
使用像docopt或argparse这样的框架有助于抽象很多东西,让你专注于为应用程序的逻辑编写代码。
注意: 为命令行构建一个 Python 目录树生成器是一个循序渐进的教程,向您展示了一种构建目录树生成器的方法。
在应用程序的逻辑中,您可以决定如何表示文件或目录。使用不同的颜色是一个聪明的方法。您可以使用colored库以不同的颜色打印文件和目录。
您还可以决定目录树生成器的深度。例如,如果一个目录有 12 层的子目录,您可以决定只到第 5 层。
如果您愿意,您还可以让用户决定他们希望目录树生成器进行到多深。
额外挑战
由于生成的目录树的结果将出现在命令行上,您可以更进一步。您可以让生成器创建目录树的图像,所以它基本上会将文本转换成图像。
你会发现 pillow 库对此很有用。
关于项目工作的提示
从事项目工作可能会很困难。这就是为什么对一个项目的动机和兴趣会使它不那么令人生畏的原因之一。
如果你对一个项目感兴趣,你可以花时间去研究,找到对你的项目有帮助的库和工具。
以下是一些建议:
- 找到动力的来源
- 将项目分解成子任务
- 研究子任务
- 一步一步地构建每个子任务
- 如果你被困住了,就寻求帮助
- 将子任务放在一起
结论
在本文中,您已经看到了一些您可能会感兴趣的 Python 项目想法。
项目理念涵盖了一系列平台。您看到了 Web、GUI 和命令行平台的项目构想。
您可以选择为不同的平台构建一个项目。以 URL Shortener 为例,您可以选择为 Web、GUI 或命令行构建一个。
由于您是一名中级 Python 开发人员,这些项目可能很有挑战性,但也很有趣。
让一个项目发生的最好方法就是开始。很快,你就会完成并发现你从一个项目中获益良多!
立即观看本教程有真实 Python 团队创建的相关视频课程。与书面教程一起观看,加深您的理解: 用 13 个中级项目想法 增长您的 Python 作品集*********