在Python中将输入参数转换为输出参数

在Python中将输入参数转换为输出参数,python,parameters,output,Python,Parameters,Output,我有一个Python脚本,它接受几个输入参数,其中一个是保存处理后数据的输出文件夹的名称。我希望能够访问作为输出参数的输出文件夹变量。我该怎么做?注意:此脚本正在ArcGIS模型中使用。我需要该输出参数作为模型中另一个进程的输入 #Get the input feature class, optional fields and the output filename input_FC = sys.argv[1] inField = sys.argv[2] theFName = sys.argv[

我有一个Python脚本,它接受几个输入参数,其中一个是保存处理后数据的输出文件夹的名称。我希望能够访问作为输出参数的输出文件夹变量。我该怎么做?注意:此脚本正在ArcGIS模型中使用。我需要该输出参数作为模型中另一个进程的输入

#Get the input feature class, optional fields and the output filename
input_FC = sys.argv[1]
inField = sys.argv[2]
theFName = sys.argv[3]
outFolder = sys.argv[4]

如果你必须把它作为输入,你不是已经有了这些信息吗?如果不知道输入是什么,如何调用函数?在调用输入之前将其存储为变量,然后在需要时使用该变量。

如果必须将其作为输入输入,您还没有这些信息吗?如果不知道输入是什么,如何调用函数?在调用之前将输入存储为变量,然后在需要时使用该变量。

Python将以几种方式“输出”变量(或您所称的参数)。如果希望将变量写入屏幕,可以使用打印功能

input_FC = sys.argv[1]
inField = sys.argv[2]
theFName = sys.argv[3]
outFolder = sys.argv[4]

print outFolder

如果您希望将此变量用于不同的Python脚本,您可能需要考虑编写函数。函数可以将变量作为输入并使用它们进行计算,然后返回输出

def complete_fname(folder, fname):
    output = folder + '/' + fname
    return output

input_FC = sys.argv[1]
inField = sys.argv[2]
theFName = sys.argv[3]
outFolder = sys.argv[4]

outFName = complete_fname(outFolder, theFName)

最后,您可能需要考虑将您的SysARGV命令放入一个仅在命令行运行脚本的条件下运行命令。这样,如果有人在脚本上使用“导入”而不是从命令行运行脚本,程序将不会查找命令行参数

def complete_fname(folder, fname):
    output = folder + '/' + fname
    return output

if __name__ == '__main__':

    input_FC = sys.argv[1]
    inField = sys.argv[2]
    theFName = sys.argv[3]
    outFolder = sys.argv[4]

    outFName = complete_fname(outFolder, theFName)
Python将以几种方式“输出”变量(或您所称的参数)。如果希望将变量写入屏幕,可以使用打印功能

input_FC = sys.argv[1]
inField = sys.argv[2]
theFName = sys.argv[3]
outFolder = sys.argv[4]

print outFolder

如果您希望将此变量用于不同的Python脚本,您可能需要考虑编写函数。函数可以将变量作为输入并使用它们进行计算,然后返回输出

def complete_fname(folder, fname):
    output = folder + '/' + fname
    return output

input_FC = sys.argv[1]
inField = sys.argv[2]
theFName = sys.argv[3]
outFolder = sys.argv[4]

outFName = complete_fname(outFolder, theFName)

最后,您可能需要考虑将您的SysARGV命令放入一个仅在命令行运行脚本的条件下运行命令。这样,如果有人在脚本上使用“导入”而不是从命令行运行脚本,程序将不会查找命令行参数

def complete_fname(folder, fname):
    output = folder + '/' + fname
    return output

if __name__ == '__main__':

    input_FC = sys.argv[1]
    inField = sys.argv[2]
    theFName = sys.argv[3]
    outFolder = sys.argv[4]

    outFName = complete_fname(outFolder, theFName)

什么是“输出参数”?请具体说明你想用它做什么。对不起,我真正的意思是让outFolder(最初是一个输入变量)在过程完成后也成为一个输出。正如我所提到的,我在GIS模型构建器中使用这个脚本,其中变量可以被称为输出“参数”的输入。这是一个关于ArcGIS模型构建器以及将使用ArcPy编写的Python脚本工具合并到其中的问题。因此,最好在堆栈交换时询问它,“输出参数”是什么?请具体说明你想用它做什么。对不起,我真正的意思是让outFolder(最初是一个输入变量)在过程完成后也成为一个输出。正如我所提到的,我在GIS模型构建器中使用这个脚本,其中变量可以被称为输出“参数”的输入。这是一个关于ArcGIS模型构建器以及将使用ArcPy编写的Python脚本工具合并到其中的问题。因此,在堆栈交换中询问它要好得多。不,它实际上只是一个空文件夹的名称,处理后的结果将放在其中。因此,在进程/函数运行之前,输入变量只是一个没有数据的空文件夹名称。问题源于试图在模型中使用相同的变量(输出文件夹名称)作为输入变量。当我在模型中使用它作为输入时,它需要被处理过的数据填充。不,它只是一个空文件夹的名称,处理过的结果将被放入其中。因此,在进程/函数运行之前,输入变量只是一个没有数据的空文件夹名称。问题源于试图在模型中使用相同的变量(输出文件夹名称)作为输入变量。当我在模型中使用它作为输入时,需要用处理过的数据填充它。