Python - 任务调度器 0x1
我在安排一个Python脚本(C:\Python27\test.py)时遇到了很大的麻烦,这个脚本的代码如下:
import xlrd
import csv
with xlrd.open_workbook('Z:/somefile.xls') as wb:
sh = wb.sheet_by_index(3)
with open('Z:/somefile.csv', 'wb') as f:
c = csv.writer(f)
for r in range(sh.nrows):
c.writerow(sh.row_values(r))
这个脚本的目的是把“somefile.xls”中的第三个工作表保存成一个自己的.csv文件。当我在Python Shell中手动运行它时,一切正常。
Z:\是一个映射的驱动器,位于一个完全不同的服务器上。
但是当我尝试通过任务调度器运行它时,总是得到0x1的结果代码。我设置任务时是这样的:
- 无论用户是否登录都运行 - 不存储密码
- 以最高权限运行
- 程序/脚本:python.exe
- 添加参数(可选): "test.py"
- 起始位置(可选):C:\Python27
我看了很多帖子,大家给了不同的建议,但没有一个能解决我的问题。
有没有人遇到过这种情况?
杰夫
6 个回答
我在尝试以其他用户的权限运行时遇到了类似的问题。最后,我用“另一个用户”的账号登录到服务器,发现那个用户的Python模块缺失了。
我用那个用户在命令行中运行了.py脚本,并通过pip为那个用户安装了所有缺失的模块。
然后一切都开始正常工作了。
我也遇到过同样的问题: 问题出在路径中有空格。 比如说: "C:/python/pythonw.exe" "E:\python\Sales prog\sales prog111.py" 我做了这样的修改: "C:/python/pythonw.exe" "E:\python\Salesprog\salesprog111.py" 这样就解决了。
我也遇到过同样的问题,试了上面所有的方法,但都没用。
我的设置是这样的:
- 程序/脚本:
python.exe
- 添加参数(可选):
D:\test.py
- 启动位置(可选):
C:\Python37\
最后,我发现是因为我在我的Python脚本中读取文件时出错了。
pd.read_excel("./xlsx/XXX.xlsx")
我原以为它会直接指向 "D:/xlsx/XXX.xlsx
",但实际上并没有。我在我的脚本中修改了代码:
pd.read_excel("D:/xlsx/XXX.xlsx")
然后就成功了。
我也遇到过同样的问题,也许你可以试试下面的设置:
- 程序/脚本:C:\Python27\python.exe(程序的完整路径)
- 添加参数(可选):test.py(要运行的文件名)
- 起始位置(可选):C:\Python27(文件所在文件夹的完整路径)
这个设置对我有效。希望能帮到你。
几周前我遇到了这个问题,任务调度器真让人头疼!
不管是什么原因,我一直无法让脚本在选择“无论用户是否登录都运行”这个选项时正常运行。我和IT部门打了大约10个小时的电话,试图搞明白这个问题。结果发现这是做不到的。如果取消勾选这个选项,你的脚本就可以正常运行了。