我正在尝试找到列举列表中项目的最直接的方法,这样用户就不会在命令行上输入长文件名.下面的函数向用户显示文件夹中的所有.tgz和.tar文件......然后允许用户输入他想要提取的文件的名称.这对于用户来说是单调乏味并且语法错误.我想让用户只选择与文件相关的数值(例如.. 1,2,3等).有人可以给我一些方向吗?谢谢!
dirlist=os.listdir(path)
def show_tgz():
for fname in dirlist:
if fname.endswith(('.tgz','.tar')):
print '\n'
print fname
Run Code Online (Sandbox Code Playgroud)
从文件列表开始:
files = [fname for fname in os.listdir(path)
if fname.endswith(('.tgz','.tar'))]
Run Code Online (Sandbox Code Playgroud)
现在你可以从字面上理解enumerate它们:
for item in enumerate(files):
print "[%d] %s" % item
try:
idx = int(raw_input("Enter the file's number"))
except ValueError:
print "You fail at typing numbers."
try:
chosen = files[idx]
except IndexError:
print "Try a number in range next time."
Run Code Online (Sandbox Code Playgroud)