<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ihsgnodoay</title>
    <description>The latest articles on DEV Community by ihsgnodoay (@ihsgndoay).</description>
    <link>https://dev.to/ihsgndoay</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1133877%2Fe6a8e03d-b990-49d2-98b4-7e7c0d5da428.png</url>
      <title>DEV Community: ihsgnodoay</title>
      <link>https://dev.to/ihsgndoay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ihsgndoay"/>
    <language>en</language>
    <item>
      <title>隐藏在Python的CLI工具</title>
      <dc:creator>ihsgnodoay</dc:creator>
      <pubDate>Sun, 06 Aug 2023 04:58:49 +0000</pubDate>
      <link>https://dev.to/ihsgndoay/yin-cang-zai-pythonde-cligong-ju-3akb</link>
      <guid>https://dev.to/ihsgndoay/yin-cang-zai-pythonde-cligong-ju-3akb</guid>
      <description>&lt;h3&gt;
  
  
  1. 使用 Python的gzip模块解压缩
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;gzip&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;decompress&lt;/span&gt; &lt;span class="n"&gt;pypi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;如果 Windows 中没有安装 gzip 实用工具，可以使用该命令进行解压，如下图所示，使用该命令加压后的文件。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0zvlUgg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143617.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0zvlUgg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143617.png" alt="" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. 查看标准库位置
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;site&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CkLVVP3s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143709.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CkLVVP3s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143709.png" alt="" width="800" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m site&lt;/code&gt; 这个命令的主要功能是查看 Python 解释器的模块搜索路径和安装位置信息。&lt;/p&gt;

&lt;p&gt;具体来说：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;code&gt;python&lt;/code&gt;: 这是在命令行中运行 Python 解释器的命令。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;-m&lt;/code&gt;: 这是 Python 解释器的一个选项，表示要加载一个模块进行运行。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;site&lt;/code&gt;: 这是要加载的模块的名称，即 &lt;code&gt;site&lt;/code&gt; 模块。 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;当执行这个命令后，Python 解释器会加载 &lt;code&gt;site&lt;/code&gt; 模块，并执行其中的代码。&lt;code&gt;site&lt;/code&gt; 是 Python 的标准库中提供的一个模块，主要用于处理模块搜索路径和模块安装位置的相关信息。&lt;/p&gt;

&lt;p&gt;通过运行这个命令，你可以查看 Python 解释器中的模块搜索路径、默认的安装位置以及其他与模块管理相关的信息。这对于理解 Python 模块的导入机制、查找模块文件的规则等很有帮助。&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 使用 Python的http.serer模块分享本地资源
&lt;/h3&gt;

&lt;p&gt;在需要分享的目录下，按住 shift 右击选择 powershell 或者 cmd，输入如下命令，第一条没有指定端口，默认是8000端口，第二条指定80端口，可以不输入端口直接访问。&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WuSGA_WX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143745.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WuSGA_WX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143745.png" alt="" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. base64
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;base64&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TFY7ipAS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143926.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TFY7ipAS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804143926.png" alt="" width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. 开启异步Python控制台
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kC9mj3t8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144001.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kC9mj3t8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144001.png" alt="" width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m asyncio&lt;/code&gt; 这个命令的主要功能是运行 Python 解释器，并加载 &lt;code&gt;asyncio&lt;/code&gt; 模块。&lt;/p&gt;

&lt;p&gt;当执行这个命令后，Python 解释器会加载 &lt;code&gt;asyncio&lt;/code&gt; 模块，并执行其中的代码。&lt;code&gt;asyncio&lt;/code&gt; 是 Python 的标准库中提供的一个模块，用于支持异步编程。&lt;/p&gt;

&lt;p&gt;通过运行这个命令，你可以在命令行中使用 &lt;code&gt;asyncio&lt;/code&gt; 模块提供的功能，例如创建异步任务、使用协程（coroutine）进行异步编程、处理异步事件循环等。异步编程是一种高效的编程方式，特别适用于处理 I/O 密集型任务和网络编程。在运行这个命令后，你可以尝试使用 &lt;code&gt;asyncio&lt;/code&gt; 模块来体验 Python 的异步编程特性。&lt;/p&gt;

&lt;h3&gt;
  
  
  6. tokenize(标记)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;tokenize&lt;/span&gt; &lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hyd2MaaC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144228.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hyd2MaaC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144228.png" alt="" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这个命令的主要功能是对名为 &lt;code&gt;cgi.py&lt;/code&gt; 的 Python 脚本文件进行词法分析，并显示其前10个词法标记。&lt;/p&gt;

&lt;p&gt;具体来说：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;code&gt;python -m tokenize&lt;/code&gt;: 这部分是在命令行中运行 Python 解释器，并加载 &lt;code&gt;tokenize&lt;/code&gt; 模块。&lt;code&gt;-m&lt;/code&gt; 参数表示要运行一个模块，后面紧跟着模块的名称。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;cgi.py&lt;/code&gt;: 这是要进行词法分析的 Python 脚本文件的名称，即 &lt;code&gt;cgi.py&lt;/code&gt;。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;|&lt;/code&gt;: 这是 Linux/Unix 系统中的管道符号，用于将前一个命令的输出作为后一个命令的输入。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;head -n 10&lt;/code&gt;: 这部分是将 &lt;code&gt;tokenize&lt;/code&gt; 模块的输出通过管道传递给 &lt;code&gt;head&lt;/code&gt; 命令。&lt;code&gt;head&lt;/code&gt; 命令用于显示文件的前几行，默认显示前10行（因为 &lt;code&gt;-n 10&lt;/code&gt; 表示显示前10行）。 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;综合起来，这个命令的作用是：运行 Python 解释器，对 &lt;code&gt;cgi.py&lt;/code&gt; 文件进行词法分析，然后将其词法标记的前10个显示在终端上。这样可以查看 &lt;code&gt;cgi.py&lt;/code&gt; 文件的词法结构，即将其拆分成单个的词法标记（例如标识符、关键字、运算符、字符串等），以了解其构成和语法。可直接针对文件运行，查看分词的内容：&lt;/p&gt;

&lt;h3&gt;
  
  
  7. AST模式（抽象语法树）
&lt;/h3&gt;

&lt;p&gt;与tokenize相比，AST 模式如下：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt; &lt;span class="n"&gt;cgi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;py&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s0Fx7rc3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144316.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s0Fx7rc3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144316.png" alt="" width="625" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这个命令的主要功能是对名为 &lt;code&gt;cgi.py&lt;/code&gt; 的 Python 脚本文件进行语法分析，并显示其抽象语法树（AST）的前 10 行。具体来说：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;code&gt;python -m ast&lt;/code&gt;: 这部分是在命令行中运行 Python 解释器，并加载 &lt;code&gt;ast&lt;/code&gt; 模块。&lt;code&gt;-m&lt;/code&gt; 参数表示要运行一个模块，后面紧跟着模块的名称。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;cgi.py&lt;/code&gt;: 这是要分析的 Python 脚本文件的名称，即 &lt;code&gt;cgi.py&lt;/code&gt;。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;|&lt;/code&gt;: 这是 Linux/Unix 系统中的管道符号，用于将前一个命令的输出作为后一个命令的输入。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;head -n 10&lt;/code&gt;: 这部分是将 &lt;code&gt;ast&lt;/code&gt; 模块的输出通过管道传递给 &lt;code&gt;head&lt;/code&gt; 命令。&lt;code&gt;head&lt;/code&gt; 命令用于显示文件的前几行，默认显示前10行（因为 &lt;code&gt;-n 10&lt;/code&gt; 表示显示前10行）。 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;综合起来，这个命令的作用是：运行 Python 解释器，对 &lt;code&gt;cgi.py&lt;/code&gt; 文件进行语法分析，然后将其抽象语法树的前 10 行显示在终端上。这样可以查看 &lt;code&gt;cgi.py&lt;/code&gt; 文件的抽象语法树的部分内容，以了解其语法结构和组织，如上图所示。&lt;/p&gt;

&lt;h3&gt;
  
  
  8. json.tool（格式化json）
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;echo&lt;/span&gt; &lt;span class="s"&gt;'{"foo": "bar", "baz": [1, 2, 3]}'&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--df1ykFxo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144340.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--df1ykFxo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144340.png" alt="" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;提示：如果 json 文档无效，也会以非零状态退出。&lt;/p&gt;

&lt;h3&gt;
  
  
  9. random
&lt;/h3&gt;

&lt;p&gt;我认为这可能提供一个生成随机数的实用程序，但遗憾的是它只是一个基准测试套件，没有额外的命令行选项：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bNmMyyC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144503.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bNmMyyC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144503.png" alt="" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. nntplib
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;nntplib&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;内置演示 - 显示新闻组中的最新文章，它默认为gmane.comp.python.general：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bNmMyyC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144503.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bNmMyyC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804144503.png" alt="" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m nntplib&lt;/code&gt; 这个命令的主要功能是运行 Python 解释器，并加载 &lt;code&gt;nntplib&lt;/code&gt; 模块。&lt;/p&gt;

&lt;p&gt;具体来说：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;code&gt;python&lt;/code&gt;: 这是在命令行中运行 Python 解释器的命令。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;-m&lt;/code&gt;: 这是 Python 解释器的一个选项，表示要加载一个模块进行运行。 &lt;/li&gt;
&lt;li&gt; &lt;code&gt;nntplib&lt;/code&gt;: 这是要加载的模块的名称，即 &lt;code&gt;nntplib&lt;/code&gt; 模块。 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;当执行这个命令后，Python 解释器会加载 &lt;code&gt;nntplib&lt;/code&gt; 模块，并执行其中的代码。&lt;code&gt;nntplib&lt;/code&gt; 是 Python 的标准库中提供的一个模块，用于与 NNTP（Network News Transfer Protocol）服务器进行交互，实现新闻组的访问和操作。&lt;/p&gt;

&lt;p&gt;通过运行这个命令，你可以在命令行中使用 &lt;code&gt;nntplib&lt;/code&gt; 模块提供的功能，例如连接到 NNTP 服务器、获取新闻组列表、获取新闻组文章等操作。具体使用方法可以参考 Python 官方文档或 &lt;code&gt;nntplib&lt;/code&gt; 模块的文档。&lt;/p&gt;

&lt;h3&gt;
  
  
  11. 显示日历（calendar）
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="n"&gt;calendar&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g5PR5VDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804145054.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g5PR5VDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://nuibi.oss-cn-beijing.aliyuncs.com/img/20230804145054.png" alt="" width="800" height="723"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  参考目录
&lt;/h3&gt;

&lt;p&gt;[1] &lt;a href="https://til.simonwillison.net/python/stdlib-cli-tools"&gt;https://til.simonwillison.net/python/stdlib-cli-tools&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
    </item>
  </channel>
</rss>
