用Windows的“任务计划程序”执行Python脚本文件

导语

网上其实能找到很多的相关内容,但是由于很多文章都是复制粘贴的,其中有一个问题他们都没有说清楚,所以这里我想分享一点自己在设置时候的一些心得体会。

一个问题

整个任务计划设置一路下一步就ok了,几乎Xp之后每个版本的Windows设置都是差不多的。稍微提一下,创建基本任务创建任务的区别是一个有引导界面,一个直接弹出设置界面直接设置。

创建基本任务.PNG

创建任务.jpg

出问题的是在这个界面的设置方法:


启动程序设置.PNG

这里先引用一段其他文章里的设置方法:

这里解释一下三个文本框内容的含义,【程序或脚本】文本框中填的是Python编译器的名称,一般就是python.exe,【起始于】文本框中填的是Python编译器的目录,上图中假设你的Python编译器的完整路径是“C:\Python27\python.exe”,【添加参数】文本框中填的是你的Python程序的完整路径,这里假设在C盘的Users文件夹下面有一个叫做code.py的文件。如果你的Python程序包含命令行参数,将其添加到Python程序的完整路径之后即可。

上面的设置里问题还是挺多的,特别是关于起始于的解释。事实上这里的起始于并不是填写编译器所在的目录,编译器所在的目录实际上应该是在程序与脚本中就已经填写过了。而这里起始于要填写的内容应该是

被编译的python文件所在目录的位置

同时,我们注意到,这里的选项后面有一个(可选),意思是如果此处不填的话(缺省状态),那么自动将该处的目录位置定位到起始执行目录的位置(在任务计划程序执行的过程中通常是编译器所在的目录位置)。

为什么?

其实这个跟python的一个内置模块有关。
os模块下我们经常用到的os.getcwd(),用于获取脚本当前目录位置;
而os.path.pardir可以获得当前脚本目录的上一级目录。
他们在一般双击运行的情况下的输出为(举例):
D:\Python\
..

而当使用编译器运行python脚本和直接双击执行python脚本时,os.getcwd()的输出结果是不一样的:
D:\Python\
C:\Users\yyaaa\AppData\Local\Programs\Python\
换句话说,在使用编译器执行时(即在cmd中执行 python D:\Python\path.py),os.getcwd()取的是python编译器所在的目录。更一般的讲,os.getcwd()本身这个方法,返回的是当前执行python文件的文件目录,os.path.pardir同理。一般情况下,打开脚本时,cmd会自动定位到当前脚本所在位置,类似使用了命令cd D:\Python\,所以执行目录就在脚本位置,所以输出D:\Python\;而当用任务计划程序执行时,其本质就是在cmd中将参数拼接,形成python D:\Python\path.py这样的一条命令来运行程序,所以此时他返回的python的执行文件目录,就是python的安装目录C:\Users\yyaaa\AppData\Local\Programs\Python\

因此我们需要定义起始于这个参数来告诉Windows实际的脚本位置在哪里,否则就会出现找不到目标文件的错误。如果脚本中没有牵涉到类似的目录位置等情况时(实际情况是这样的定时脚本大概率会遇到文件输入输出问题),此项大可以不填。

总结

现在重新对这里的设置进行总结:

程序或脚本:Python编译器所在的位置
添加参数(可选):被执行脚本所在的完全位置,如果有参数接上参数,如D:\abc\abc.py -a -b
起始于(可选):被执行脚本所在目录的位置,如D:\abc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容