如何搜索子字符串,找到开头和结尾,然后检查该数据是否为工作日?

我想出了以下应该相当接近的内容,但它不太正确。当我尝试测试数据是否为工作日时出现以下错误。 AttributeError: 'str' object has no attribute 'isoweekday'


这是我微弱的代码:


offset = str(link).find('Run:')

amount = offset + 15

pos = str(link)[offset:amount]

if pos.isoweekday() in range(1, 6):

    outF.write(str(link))

    outF.write('\n')

我正在寻找字符串“运行:”(它在冒号后总是有 2 个空格),然后我想向右移动 15 个空格,以捕获日期。因此,查找“运行:”的 n 个空格,然后获取日期,例如“2018-12-23”并测试此日期是否为工作日。如果此子字符串是工作日,我想将整个字符串写入 CSV 文件中的一行(写入 CSV 文件工作正常)。我只是不确定如何找到那个日期(字符串中有多个日期;我需要紧跟在“运行:”之后的那个)。


MM们
浏览 186回答 3
3回答

绝地无双

您只是忘记将其加载到datetime对象中:from datetime import datetime# ...pos_date = datetime.strptime(pos, "%Y-%m-%d")if pos_date.isoweekday() in range(1, 6):&nbsp;&nbsp;&nbsp; &nbsp; # ...此外,由于您正在使用.isoweekday()并且星期一表示为 1,因此您实际上不需要检查下边界:if pos_date.isoweekday() <= 5:&nbsp; # Monday..Friday&nbsp; &nbsp; # ...

互换的青春

也许转换回datetime类型:offset = str(link).find('Run:')amount = offset + 15pos = str(link)[offset:amount]if datetime.strptime(pos,'%Y-%m-%d').isoweekday() in range(1, 6):&nbsp; &nbsp; outF.write(str(link))&nbsp; &nbsp; outF.write('\n')然后它应该按预期工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python