python - 无法在python中按日期排序
问题描述
我有一个 bsh 脚本,它有一个 while 循环,它是一个 python 脚本来检查一堆主机上的 SSL 证书到期日期。该脚本完美执行并输出:
domainA--> expiry_date_A domainB--> expiry_date_B
我需要能够按日期排序,以便知道哪个即将到期。
以下是脚本:
**cat CE.sh**
for dm in `cat dm.txt`; do
python3 check-cert.py $dm
done
**cat dm.txt**
google.com
ibm.com
cisco.com
example.com
cat check-cert.py
import ssl
import OpenSSL
import sys
import time
def get_SSL_Expiry_Date(host, port):
cert = ssl.get_server_certificate((host, 443))
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
raw_date = x509.get_notAfter()
decoded_date = raw_date.decode("utf-8")
dexpires = time.strptime(decoded_date, "%Y%m%d%H%M%Sz")
print (domain, "expires --> ", time.strftime('%m/%d/%y', dexpires))
domain = sys.argv[1]
port = 443
get_SSL_Expiry_Date(domain, port)
这是输出:
google.com expires --> 04/23/19
ibm.com expires --> 03/15/20
cisco.com expires --> 12/07/19
example.com expires --> 12/02/20
我需要按日期排序的输出,所以它应该是:
google.com expires --> 04/23/19
cisco.com expires --> 12/07/19
ibm.com expires --> 03/15/20
example.com expires --> 12/02/20
我感谢您的帮助。
谢谢
解决方案
您可以通过创建值的数据框来做到这一点
pd.DataFrame(output)
名称列
output.columns=['Source','Date']
然后排序:
output['Date'] =pd.to_datetime(output.Date)
output.sort_values(by='Date')
推荐阅读
- javascript - 让分页更好一点 Vuejs
- arduino - 为arduino重写SdFat中的行
- concurrency - 线性化和静态一致性有什么区别?
- configuration - 如何更改 zpool 的默认 zfs 选项?
- javascript - TypeScript:使用动态导入的工厂模式不允许构造对象的新实例以进行组合
- vue.js - 在 vuejs 中使用 axios 方法处理错误
- arrays - 反应我如何多映射值以提高效率
- google-cloud-platform - Terraform - 创建 Google Cloud SQL 实例不起作用
- python - Python 3.7.0 - 结构 calcsize、错误或功能?
- android - 如何在同一时间线android中播放多个视频?