7 个精妙的 Python 内置命令行技巧,让您的编程更轻松
Python 是一座名副其实的宝库。
尽管已经使用了近十年,我仍然会偶然发现一些隐藏的瑰宝,不断提醒我它的便利和优雅。
在本文中,我将分享七种精妙的内置 Python 命令行技巧,它们可以简化日常任务,无需额外安装。你会发现,几个超级简单的命令就能节省击键次数、提高效率,并在终端上展现 Python 隐藏的优雅。
1. 在终端上打印日历
你知道 Python 有一个内置日历吗?
只需执行 python -m calendar
命令,它就会直接从命令行中显示日历。
当你想查看今天是几号,但又不想将手从键盘移到鼠标上时,这个功能就非常方便了(好吧,另一个方便的方法是询问坐在旁边的可爱的同事,这样你也不用使用鼠标了)。
默认情况下,该命令将显示当年的日历。你也可以在末尾添加特定年份来查看。
例如,下面的结果就是 2077 年的日历。如果在图形用户界面日历上查看,需要点击几次?
检查特定月份也很简单:
2. 解锁 Python 内置的海龟图形教程
turtledemo
是展示 Python turtle
图形模块功能的示例程序集合。
它是通过交互式可视化示例学习计算机图形和编程概念的好方法。然而,许多新手并不知道这个隐藏的宝藏。
只需一行命令就能打开整个资源:
python -m turtledemo
3. 使用 json.tool
轻松处理 JSON 数据
如果你是一名 Python 网络开发人员,处理 JSON 数据是一项经常性的工作。
如果您需要在终端上以超快的方式验证、格式化甚至排序 JSON 数据,json.tool
可以帮到您。
例如,下面是一个名为 config.json
的 JSON 文件示例:
{
"app_name": "MyApp",
"version": "1.0.0",
"debug": true,
"database": {
"host": "localhost",
"port": 5432,
"username": "admin",
"password": "secret123"
},
"features": {
"dark_mode": true,
"notifications": true,
"auto_save": false
},
"allowed_ips": [
"192.168.1.1",
"192.168.1.2",
"10.0.0.1"
]
}
首先,您可以通过以下命令验证 JSON:
python -m json.tool config.json
如果格式化后的 JSON 文件有效,它就会输出;如果存在任何语法问题,它就会出错。
其次,你还可以根据自定义规则来格式化文件,例如应用自定义缩进(2 个空格而不是默认的 4 个空格),如下所示:
python -m json.tool --indent 2 config.json
此外,还可以根据键值按字母顺序对数据进行排序:
python -m json.tool --sort-keys config.json
执行上述命令后,输出数据将如下所示:
不过,结果只会打印在终端上,原始文件不会改变。如果我们想保存新的排序数据,可以将其输出到文件中(如果使用 Linux 进行输出):
python -m json.tool --sort-keys config.json > config_sorted.json
是不是很方便、很顺手?
4. 建立 HTTP 服务器的最快方法
如果你只想快速建立一个测试 HTTP 服务器,无需安装全面的 Python Web 开发框架,只需一行命令就足够了:
python -m http.server 8000
上述命令将在本地主机的 8000 端口启动一个基本 HTTP 服务器。当你想在内部网的两台笔记本电脑之间共享文件时,它也会很方便。
5. 使用 timeit
对 Python 代码段进行微基准测试
当你需要比较两段很小的代码,或者只是想了解一段代码需要多长时间时,python -m timeit
是你的首选工具–无需额外的剖析库。
例如,下面的代码执行了表达式 100 万次,并显示了 5 次运行的最佳结果:
python -m timeit -n 1000 -r 5 '“-”.join(str(n) for n in range(10))'
两个关键参数是
-n 1000
指定每次运行的迭代次数。-r 5
则告诉timeit
重复测试五次,并报告最佳结果,以尽量减少系统活动带来的噪音。
结果输出清晰翔实:
1000 loops, best of 5: 952 nsec per loop
6. 快速生成安全密码
当你注册一个新应用时,输入一个强大的密码可能会让你头疼不已。
不过,这里有一个简单的 Python 命令,你可以在需要密码的时候随时在终端上运行:
python -c "import secrets; print(secrets.token_urlsafe(16))"
这样就得到了一个像下面这样的强密码(每次都不一样):
lDaXpKuyGSk6CNjV0vhSvQ
不过,有些应用程序对密码的要求更严格–生成一个包含 10 个字符的强密码如何?
- 大写字母 (A-Z)
- 小写字母(a-z)
- 数字 (0-9)
- 特殊字符(如 !@#$%^&() 等)
仍然只有一行 Python 命令
python -c "import secrets, string; print(''.join(secrets.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits + string.punctuation) for _ in range(10)))"
它将打印出如下密码
gYsw~@GA7R
7. 使用 gzip
或 zipfile
压缩文件
真正的 Python 达人不需要单独的压缩工具,因为一个简单的 CLI 命令就能完成工作:
python -m gzip test.py
它能轻松地将 test.py
压缩成 test.py.gz
。但唯一需要注意的是,gzip
模块一次只能处理单个文件。
如果需要将多个文件捆绑到一个压缩包中,Python 内置的 zipfile
模块就能满足您的需求:
python -m zipfile -c archive.zip *.py
上述命令将当前目录下的所有 *.py
文件打包成 archive.zip
。
简单、强大、无需额外安装,你还想要什么?
结论
只需敲击几下键盘,你就会发现 Python 的 CLI 技巧是多么方便–无需额外安装、无需上下文切换、无需仪式。
毕竟,Python 的优雅之处就在于它能让你的指尖变得如此强大。继续探索您尚未尝试过的 CLI 开关,您可能会发现更多隐藏的瑰宝。
欢迎在评论中分享您最喜欢的 Python CLI 技巧!
感谢您的阅读。❤️
本文文字及图片出自 7 Subtle Python Built-In Command-Line Tricks That Will Make Your Life Easier
你也许感兴趣的:
- Python 3.14 的 3 个语法更新将使您的代码更安全、更好用
- 14 个 Python 高级功能
- Python 的新 t-strings
- Python 异步编程的 9 个级别
- 您不应该再使用的 11 个过时 Python 模块
- Python 中 help() 函数的各种特性
- Python 奇特的自引用
- 揭秘 Python 的 10 个隐藏技巧
- 如果您使用 Python… 你现在就需要了解这 3 个工具!
- 【外评】Python 为何如此糟糕…
你对本文的反应是: