我下面的代码将列出一个目录中的所有文件,每个文件都有自己的编号。然后它要求用户通过选择相应的数字来选择一个文件。它应该返回一个至少包含一个文件名的列表。例如
['file1.xvg']
问题是,即使用户输入了一个数字,提示也会再次出现。再次输入相同的数字后,程序终止。你知道吗
#function to determine data files to process
def file_names():
print ""
print "Choose file(s) to analyze:"
print ""
#display available files in the current directory
f = filter((lambda x: x.endswith(".xvg")),os.listdir(os.curdir))
for i in f:
print " %s ----- %s"%(str(f.index(i)+1),i)
file_set = [] #list of data files
x = (raw_input("Enter file index(es), separated with spaces: ")).split()
for i in x:
file_set.append(f[int(i)-1])
print "igiveup"
print file_set
return file_set
if file_names() == ['file1.xvg']:
print "icantdo"
if file_names() == ['file2.xvg']:
print "thisanymore"
当我执行这段代码时,当它要求我输入一个输入,我给它“1”,它对应于file1.xvg,这就是终端上显示的内容:
igiveup
[file1.xvg]
icantdo
然后它又提示我一次,当我再次回答“1”时,下面是出现的内容:
igiveup
[file1.xvg]
如何确保只提示用户输入一次?你知道吗
您将调用函数两次,这就是为什么它会导致两个输入提示。解决这个问题的正确方法是改变
为了这个
相关问题 更多 >
编程相关推荐