如何在通过raw_input指定要列出的目录的同时,通过os.listdir将python仅带到输出目录
我所拥有的:
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)当前工作目录,这实际上是有效的。但是,如果我放入其他内容,列表将返回空。我试图分散和克服这个问题,但每个代码片段都能按预期工作。
发布于 2017-08-25 05:15:39
这是意料之中的,因为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))]https://stackoverflow.com/questions/45870945
复制相似问题