[英]Use os.listdir to show directories only
如何通过os.listdir
将python仅带到输出目录,同时通过raw_input
指定要列出的目录?
我有的:
file_to_search = raw_input("which file to search?\n>")
dirlist=[]
for filename in os.listdir(file_to_search):
if os.path.isdir(filename) == True:
dirlist.append(filename)
print dirlist
现在,如果我输入(通过raw_input
)当前工作目录,则此方法实际上可以工作。 但是,如果我输入其他任何内容,列表将返回空。 我试图解决这个问题,但每个代码段都按预期工作。
这是可以预期的,因为os.listdir
仅返回文件/目录的名称 ,所以除非在当前目录中运行它,否则找不到对象。
您必须join
扫描目录才能计算其完整路径:
for filename in os.listdir(file_to_search):
if os.path.isdir(os.path.join(file_to_search,filename)):
dirlist.append(filename)
注意列表理解版本:
dirlist = [filename for filename in os.listdir(file_to_search) if os.path.isdir(os.path.join(file_to_search,filename))]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.