Python 如何将原始输入()与while循环一起使用?
我的任务是使用列表循环执行多个缓冲区Python 如何将原始输入()与while循环一起使用?,python,python-2.7,arcpy,Python,Python 2.7,Arcpy,我的任务是使用列表循环执行多个缓冲区 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
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"
因此,下一步是:如果文件名已经存在(原始输入),则要求用户输入一个新的数据集名称,直到找到一个尚未存在的名称
我考虑了一个while循环,但我不确定如何将其集成到上面的代码中
我最终得到了这个
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("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"
你觉得怎么样?欢迎并感谢您的帮助 确定如果要在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\u name)
做了它应该做的事情,因为我认为它应该是arcpy.Exists(buff\u name+str(100))
或者类似的东西。)
您以前的代码可能会对提供的所有输入(甚至是错误的输入)运行for循环。如果它可以工作并且(相对)简洁,我想这是可以的。否则,你应该在CodeReview上查看它我看不出有什么问题!但以后要确保缩进是用格式表示的。我还建议它真的应该在代码检查中,看起来
for
循环应该放在而循环之外。
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"