gpt4 book ai didi

python - python中字符串的算术[MINUS]

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:32 24 4
gpt4 key购买 nike

我有一个字符串,它基本上是一个 CSV 文件的标题,我必须从中提取月份,然后通过在它前面附加一个“0”来将其转换为字符串以与其他值进行比较。

标题--

HGLOABCD8PSGL_ZXFH J20190603NXT_APAC

由此我需要从 20190603 中提取月份,即 06,然后创建一个列表,如 ['006', '005'] 列表的第二个元素将是标题中给定月份的前一个月

标题也可以像月份不同的地方

HGLOABCD8PSGL_ZXFH J20191003NXT_APAC

我已经为第一个元素写了类似这样的内容,但不确定如何减去一个月然后向其附加“0”。

acc_period = []
acc_period.append('0'+str(header)[26:28])

acc_period.append(int('0') + int(str(header)[26:28])-1)
print (acc_period)

最佳答案

使用正则表达式。

例如:

import re
from datetime import datetime, timedelta
data = ['HGLOABCD8PSGL_ZXFH J20190603NXT_APAC', 'HGLOABCD8PSGL_ZXFH J20191003NXT_APAC', 'HGLOABCD8PSGL_ZXFH J20190103NXT_APAC']

def a_day_in_previous_month(dt): #https://stackoverflow.com/a/7153449/532312
return (dt.replace(day=1) - timedelta(days=1)).month

for i in data:
m = re.search(r"(\d{8,})", i)
if m:
date = datetime.strptime(m.group(0), "%Y%m%d")
print("{}".format(date.month).zfill(3), "{}".format(a_day_in_previous_month(date)).zfill(3))

输出:

006 005
010 009
001 012

关于python - python中字符串的算术[MINUS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com