如何将raw_input()与whileloop一起使用?

2024-10-03 23:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的任务是用列表循环执行多个缓冲区!在

import arcpy

arcpy.env.overwriteOutput = 1  
arcpy.env.workspace="C:\\salzburg.gdb"  
sbgRivers="sbg_rivers"
buff_name=raw_input("Please insert a file name:")  
for buffer_size in [100,200,300,450]:  
    outfile="C:\\salzburg.gdb\\buffer_output"
    arcpy.Buffer_analysis(sbgRivers,buff_name+str(buffer_size),buffer_size)  
    print "Buffer complete"

所以下一步是:如果文件名已经存在(raw_input),用户将被要求输入一个新的数据集名,直到找到一个还不存在的名称!在

我考虑过while循环,但是我不确定如何将它集成到上面的代码中

我就这样结束了

^{pr2}$

你觉得怎么样?欢迎并感谢任何帮助!在


Tags: nameimportenv列表inputsizerawbuffer
2条回答

如果要在while循环中使用input(),则代码如下:

sett=True
while sett:
    buff_name=raw_input("Please insert a file name:")  
    if buff_name=="":
        continue 
    else: 
        break ##Or: sett=False

首先要确保文件名正确,然后继续下一步。代码应该是:(假设arcpy.Exists(buff_name)做了它应该做的,因为我认为它应该是arcpy.Exists(buff_name+str(100))或类似的东西。)

import arcpy
arcpy.env.overwriteOutput = 1  
arcpy.env.workspace="C:\\salzburg.gdb"  
sbgRivers="sbg_rivers"
buff_name=raw_input("Please insert a new data set name:")
while arcpy.Exists(buff_name):    
    buff_name=raw_input("Name already exists. Please enter a new data set name")  
for buffer_size in [100,200,300,450]:    
    arcpy.Buffer_analysis(sbgRivers,buff_name+str(buffer_size),buffer_size) 
    print "Buffer complete"

以前的代码会对提供的所有输入运行for循环(即使是错误的输入)。在

相关问题 更多 >