我正在尝试使用system()
函数从R运行python脚本:
system('D:/python script.py', wait=T)
脚本本身运行良好(双击它),但是当我从R调用它时它没有运行,我得到以下消息:
Warning message:
running command 'D:/python script.py' had status 127
当我尝试使用shell.exec('python script.py')
运行它时,它运行得很好。但是,我需要等待命令完成,然后按照代码的下一行。来自system()
,system2()
或shell()
的参数“等待”允许我这样做,但shell.exec()
没有类似的论点。
这是我的python脚本的代码,应用了ArcGIS中的Tabulate Area功能:
# Importing libraries
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Script arguments
Zone_Raster = "D:/Zone_Raster.tif"
Sp_Raster = "D:/Value_Raster.tif"
Tab_Area = "D:/Tab_Area.dbf"
# Tabulate area
TabulateArea(Zone_Raster,"VALUE",Sp_Raster,"VALUE",Tab_Area,"#")
我也尝试调用.bat文件,我将参数传递给python脚本sys.argv
。 .bat文件本身运行完美(双clic),但是当我使用system()
或shell()
调用它时,它不会运行并返回此消息:
'python script.py' is not recognized as an internal or external command,
operable program or batch file
是否有人知道如何使用system()
,system2()
或shell()
运行python脚本或.bat文件?或者我如何让shell.exec()
等待命令完成?
提前致谢,
干杯,
的Jaime