从R运行python脚本

时间:2017-11-02 14:22:39

标签: python r windows arcgis

我正在尝试使用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

0 个答案:

没有答案