如何根据python脚本的运行日期发送两个文件名中的一个?

如何根据python脚本的运行日期发送两个文件名中的一个?,python,datetime,Python,Datetime,我在星期二和星期五创建了一个excel文件。当它在周二运行时,它拥有上周四到周日的数据。当它在周五运行时,它有上周一到周三的数据 当我发送文件时,我喜欢在电子邮件的主题行标记日期范围。 示例:如果今天是2020年10月27日星期二,则主题行将显示“数据20201022-20201025”(4天的数据) 如果今天是2020年10月30日星期五,则主题行应为“数据20201026-20201028”(3天数据) 简而言之,这里是我的逻辑,但我不确定如何正确编码或格式化它。我唯一需要帮助的部分是IF逻

我在星期二和星期五创建了一个excel文件。当它在周二运行时,它拥有上周四到周日的数据。当它在周五运行时,它有上周一到周三的数据

当我发送文件时,我喜欢在电子邮件的主题行标记日期范围。 示例:如果今天是2020年10月27日星期二,则主题行将显示“数据20201022-20201025”(4天的数据) 如果今天是2020年10月30日星期五,则主题行应为“数据20201026-20201028”(3天数据)

简而言之,这里是我的逻辑,但我不确定如何正确编码或格式化它。我唯一需要帮助的部分是IF逻辑。如果今天是星期二,请发送此文件名;如果今天是星期五,请发送其他文件名。我剧本的其他部分都很好。这只是一个片段和示例

dt = (datetime.date.today()).strftime("%A")
dte = (datetime.now() - timedelta(days=2)).strftime('%Y%m%d')
dte1 = (datetime.now() - timedelta(days=5)).strftime('%Y%m%d')
dte2 = (datetime.now() - timedelta(days=4)).strftime('%Y%m%d')

if dt = "Tuesday"
emailreport.send(subject=f'Product Data {dte1} - {dte}',attch=output,distro_nm='name_list')

if dt = "Friday"
emailreport.send(subject=f'Product Data {dte2} - {dte}',attch=output,distro_nm='name_list')

我对Python相当陌生,所以这可能不是最好的方法,甚至不可能。非常感谢您的帮助。

您可以为一周中的某一天创建一个范围为7个数字的对象列表

    mylist = list(range(7)) # days of week`
    def myfunc(obj):
       for elem in mylist:
          if elem >=3:
              print('x') # Friday (mon thru Wednesday)
          elif elem <3: 
              print('y') # Tuesday (Thursday thru Sunday)

    # then call function
    myfunc(mylist)
mylist=list(范围(7))#一周中的几天`
def myfunc(obj):
对于mylist中的elem:
如果元素>=3:
打印('x')#周五(周一至周三)

elif elem你能写一段代码或df来获得一个例子吗

dt = (datetime.date.today()).strftime("%A")
dte = (datetime.now() - timedelta(days=2)).strftime('%Y%m%d')
dte1 = (datetime.now() - timedelta(days=5)).strftime('%Y%m%d')
dte2 = (datetime.now() - timedelta(days=4)).strftime('%Y%m%d')

if dt = "Tuesday"
emailreport.send(subject=f'Product Data {dte1} - {dte}',attch=output,distro_nm='name_list')

if dt = "Friday"
emailreport.send(subject=f'Product Data {dte2} - {dte}',attch=output,distro_nm='name_list')
我认为您可以使用以下功能:

df.dayofweek ==1 # Tuesday

df.dayofweek ==4 # Friday

谢谢你

你能澄清一下问题是什么吗?你试过写伪代码吗?请看,。您的代码在原则上似乎很好;有些吹毛求疵,您可以将对datetime.now的调用减少为一个,例如
now=datetime.now()
并从中派生dte等,您的if语句应该类似于
if now.weekday()==1:#=“星期二”