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

你也许感兴趣的:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注