Python 如何执行名称在变量中的批处理文件?
注意:我编辑这篇文章是因为人们一直认为我需要python中今天的日期,而我不需要今天的日期!我已经有今天日期的密码了 问题 我每周的每一天都有一个变量,该变量包含我想要执行的批处理文件 我有大部分代码,只是不知道如何根据今天的工作日更改变量。我甚至有代码来显示工作日,但我不知道如何使用它来执行基于今天的批处理文件 代码如下:Python 如何执行名称在变量中的批处理文件?,python,variables,Python,Variables,注意:我编辑这篇文章是因为人们一直认为我需要python中今天的日期,而我不需要今天的日期!我已经有今天日期的密码了 问题 我每周的每一天都有一个变量,该变量包含我想要执行的批处理文件 我有大部分代码,只是不知道如何根据今天的工作日更改变量。我甚至有代码来显示工作日,但我不知道如何使用它来执行基于今天的批处理文件 代码如下: import datetime import subprocess # obtaining today's date now = datetime.datetime.no
import datetime
import subprocess
# obtaining today's date
now = datetime.datetime.now()
tdate = (now.strftime("%A"))
print(tdate)
#the variables for each day:
Monday = """\\VGMSTATION\\Users\\VGMPC2\\Documents\\Vlcscheduler\\Playlist\\Platformer\\vlcscheduler playlist.bat"""
Tueday = """\\VGMSTATION\\Users\\VGMPC2\\Documents\\Vlcscheduler\\Playlist\\shooters beatemup survival\\vlcscheduler playlist.bat """
Wednesday = """\\VGMSTATION\Users\VGMPC2\Documents\Vlcscheduler\Playlist\Action Adventure\\vlcscheduler playlist.bat """
Thursday = """\\VGMSTATION\Users\VGMPC2\Documents\Vlcscheduler\Playlist\sports racing puzzlecard artgames\\vlcscheduler playlist.bat """
Friday = """\\VGMSTATION\Users\VGMPC2\Documents\Vlcscheduler\Playlist\Fighters\\vlcscheduler playlist.bat"""
Saturday = """\\VGMSTATION\Users\VGMPC2\Documents\Vlcscheduler\Playlist\Sega Generation\\vlcscheduler playlist.bat"""
Sunday = """\\VGMSTATION\Users\VGMPC2\Documents\Vlcscheduler\Playlist\Nintendo Generation\\vlcscheduler playlist.bat"""
# What do I put in subprocess.call() so I can run today's batch file?
我所尝试的:
某人(谢谢你的邀请suggestion@Orhan索拉克)建议尝试:
Monday = "Path\\of\\folder"
now = datetime.datetime.now()
tdate = (now.strftime("%A"))
vars()[tdate]
但当我尝试时,我得到:
KeyError: "Monday"
可能是因为我的变量都不是字典。您可以将变量与vars()一起使用 输出:
>>>'Path\\of\\folder'
因此,作为回答:
subprocess.call(vars()[tdate])
下面是你的生活,可能是这样的: 如果调用datetime.datetime.now(),则应该有一个名为weekday()的方法,该方法返回一周中当前日期的整数值。(0-6)
如果有帮助,请告诉我。我尝试了这个方法,但发现一个关键错误:“星期一”。我想这是因为我的变量都不是字典。我要提出一个新问题,因为你是唯一一个似乎读过我问题的人。其他人都认为我需要python中的今天的日期,我的脚本中已经有了这个日期。我希望人们能读一下我的问题。谢谢你的努力@Jatonjameer错误的原因是UnicodeScape。您应该在路径文件夹中使用该符号2次“\”。试着像星期一那样更新你的星期一=“”\\VGMSTATION\\Users\\VGMPC2\\Documents\\Vlcscheduler\\Playlist\\Platformer”“”嗯,这很糟糕。很抱歉,我不能再帮你了。我希望你能找到答案。祝你好运嘿@Orhan Solak我能用你给的方法让它工作。我只是太傻了,没有把变量放在上面
now=datetime.datetime.now()
。我还必须在字符串变量中添加一个r
,这样路径才能正常工作。我道歉,因为我必须去上班,我有点匆忙地问了这个问题,因为这是我的想法。谢谢你在这里帮助我。欢迎!不用担心,只要有效,我为你感到高兴。祝下一个项目好运!我已经有了获取工作日的代码now=datetime.datetime.now()tdate=(now.strftime(“%A”))print(tdate)
我需要知道如何使用我的变量来运行路径。您得到的是KeyError
,因为它返回一个字典,vars()[tdate]
正试图在其中查找tdate
的值。要执行的批处理文件的名称是什么?
subprocess.call(vars()[tdate])
dict = {0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Sunday}
>>> datetime.datetime.now().weekday()
0
subprocess.call(dict[datetime.datetime.now().weekday()])