Python脚本赢得';t在IIS 7.5中执行批处理文件
我有一个python脚本,它根据脚本从图像元数据收集的参数来自动化Erdas图像处理软件。python脚本将这些参数收集到一个列表中,该列表被写入一个批处理文件,然后运行批处理文件,该文件通知Erdas软件处理图像。当我在IIS目录之外运行此脚本时,脚本工作得非常好。但是,当我在IIS目录中运行脚本时,该脚本会部分运行,但在尝试运行批处理文件时会显示错误消息。仅供参考,我到处寻找这个问题的解决方案。我尝试过更改文件夹和文件权限以及IIS管理器设置,但没有成功。以下是错误消息:Python脚本赢得';t在IIS 7.5中执行批处理文件,python,batch-file,iis,gis,batch-processing,Python,Batch File,Iis,Gis,Batch Processing,我有一个python脚本,它根据脚本从图像元数据收集的参数来自动化Erdas图像处理软件。python脚本将这些参数收集到一个列表中,该列表被写入一个批处理文件,然后运行批处理文件,该文件通知Erdas软件处理图像。当我在IIS目录之外运行此脚本时,脚本工作得非常好。但是,当我在IIS目录中运行脚本时,该脚本会部分运行,但在尝试运行批处理文件时会显示错误消息。仅供参考,我到处寻找这个问题的解决方案。我尝试过更改文件夹和文件权限以及IIS管理器设置,但没有成功。以下是错误消息: Traceback
Traceback (most recent call last):
File "python_page.py", line 1018, in <module>
main()
File "python_page.py", line 1002, in main
getAtmCorrectBatchFile(AtmCorrectBatchlist)
File "python_page.py", line 912, in getAtmCorrectBatchFile
f = open(basePath + '/atm_batch_process.bat', 'w')
IOError: [Errno 13] Permission denied: 'C:/inetpub/wwwroot/cgi-bin/atm_batch_process.bat'
下面是发生错误的代码。我最困惑的是,错误位于创建批处理文件的getAtmCorrectBatchFile()
函数中,但当脚本试图调用它正下方列出的RunAtmCorrectBatch()函数时,就会出现错误。此时脚本已成功创建批处理文件并将其保存在cgi bin目录中,那么为什么错误会出现在创建批处理文件的函数中,而不是尝试运行批处理文件的函数中
编辑:我可以右键单击cgi-bin目录中的批处理文件并选择run,这将成功输出处理后的图像,只是由于某些原因,当python脚本尝试运行批处理文件时,这不起作用
def getAtmCorrectBatchFile(batchlist):
f = open(basePath + '/atm_batch_process.bat', 'w') #line 912
for i in range (0, len(batchlist)):
f.write(str(batchlist[i]).replace('\\', '/') +'\n')
f.close()
def RunAtmCorrectBatch():
try:
from subprocess import Popen
p = Popen("/atm_batch_process.bat", cwd=basePath)
stdout, stderr = p.communicate()
except WindowsError:
pass