跳转至

技术私房菜

使用 Python 的 argparse 构建命令行界面

原文:Build Command-Line Interfaces With Python’s argparse

命令行应用在普通用户空间中可能并不常见,但它们存在于开发、数据科学、系统管理和许多其他操作中。每个命令行应用都需要一个用户友好的命令行界面 (CLI),以便你可以与应用本身进行交互。在 Python 中,您可以使用标准库中的 argparse 模块创建功能齐全的 CLI。

RockyLinux 9 基础配置与使用

今天终于在阿里云入手了一台 2核(vCPU)+ 2GiB + 3Mbps 的 ECS,安装了最新的 Rocky Linux release 9.3 (Blue Onyx),记录一下开箱后的一些基础配置。

苹果字体 PingFang SC 的一些踩坑记录

曾经在 《为 Windows 系统替换优雅的苹果字体》中提到可在 Windows 中使用苹方字体替代默认的微软雅黑,这里就有一个问题即需要在 Wondows 下安装苹方字体 —— 如果你的字体安装错误,很有可能导致你的浏览器或其他应用出现乱码。

浏览器乱码

出现这个的原因主要是站点使用了 PingFang SC 的字体设置。

body {
    font-family: PingFang SC,microsoft yahei,sans-serif;
}

我们可以看到使用 F12 检查源码模式把 font-family 中的 PingFang SC 去掉后即可显示正常。

Pandas 处理 Excel 常用方法技巧

在使用 Pandas 前需要学习了解一下 Series 和 DataFrame 的基本数据结构和索引的相关概念,之后就可以练习基本的 Excel操作。Pandas 读取一个 Excel 文件后会将其转化为 DataFrame 对象,每一列或行就是一个 Series 对象。这里我们看下如何对一个 excel 进行读写,以及 Sheet、行列、表头处理的一些常用技巧。

读取 Excel

如果您想读取 Excel 表格中的数据,可以使用 read_excel() 方法,其语法格式如下:

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None,
              usecols=None, squeeze=False,dtype=None, engine=None,
              converters=None, true_values=None, false_values=None,
              skiprows=None, nrows=None, na_values=None, parse_dates=False,
              date_parser=None, thousands=None, comment=None, skipfooter=0,
              convert_float=True, **kwds)

单行 Python 代码片段

Via:https://muhammadraza.me/2023/python-oneliners

我已经沉浸在 Python 编程世界大约三年了。在这段时间里,我开始欣赏这种多功能语言的优雅和强大。在这篇既有趣又具有教育意义的文章中,我将展示一系列单行 Python 代码片段。无论您是经验丰富的开发人员还是初学者,这些简洁的代码行都可以让您深入了解 Python 的简单性和有效性,它们展示一行代码如何完成在其他语言中可能需要几行代码才能完成的任务。

Python3 编译安装 –with-openssl 无效的问题

很多人在使用 Python3 经常会遇到一些 openssl 版本太低从而导致包无法正常使用的问题,尤其是 urllib3 这个包。

Python 3.9.18 (main, Sep  7 2023, 14:32:17) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/software/python-3.9.18/lib/python3.9/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/usr/local/software/python-3.9.18/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in <module>
    raise ImportError(
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips  26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168
>>> import ssl
>>> import urllib3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/software/python-3.9.18/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in <module>
    raise ImportError(
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips  26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168

不同版本服务器间 SSH 免密码登录失败

今天从服务器 A(CentOS 7.3)配置 SSH 无密码登录服务器 B(CentOS Steam 9),发现执行以下常规操作后无法实现:

$ ssh-keygen
$ ssh-copy-id -i ~/.ssh/id_rsa.pub shenweiyan@66.xx.xx.xx  # ssh-copy-id user@rhel-9-server-IP
$ ssh shenweiyan@66.xx.xx.xx
ssh-keygen-need-passwd