无法在python中按日期排序
我有一个bsh脚本,它有一个while循环,可以使用python脚本检查一组主机上的SSL证书到期日期。 脚本可以完美执行并输出: 域名-->到期日 域-->到期日 我需要能够排序的日期,这样我就可以知道哪些到期不久 以下是脚本:无法在python中按日期排序,python,bash,Python,Bash,我有一个bsh脚本,它有一个while循环,可以使用python脚本检查一组主机上的SSL证书到期日期。 脚本可以完美执行并输出: 域名-->到期日 域-->到期日 我需要能够排序的日期,这样我就可以知道哪些到期不久 以下是脚本: **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 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')
直接根据
dexpires
进行排序。但是,您需要存储结果,而不仅仅是打印结果。请做一个标记,并澄清您是想在Python还是Bash中实现这一点。如果您使用ISO日期格式YYYY-MM-DD,您可以免费获得简单的排序:该格式按照词汇和时间顺序进行排序。根据您的代码输出
不是数据帧。希望它能帮助那些不起作用的人。你介意把全部代码都发出去吗?