[英]Why this recursive function doesn't work in python
在python#!/ usr / bin / env python中递归打印文件和目录的程序
import os
temp_path = os.getcwd()
path = temp_path.split("/")
print path[-1]
def recursive(wrkdir):
for items in os.listdir(wrkdir):
if os.path.isfile(items):
print "---"+items
for items in os.listdir(wrkdir):
if os.path.isdir(items):
print "---"+items
#following call to recursive function doesn't work properly
recursive("./"+items)
recursive(os.getcwd())
使用os.path.isfile
或os.path.isdir
检查文件/目录时,需要使用绝对文件/目录路径:
import os
def recursive(wrkdir):
for item in os.listdir(wrkdir):
if os.path.isfile(os.path.join(wrkdir, item)):
print "--- {0}".format(items)
for item in os.listdir(wrkdir):
if os.path.isdir(os.path.join(wrkdir, item)):
print "--- {0}".format(items)
recursive(os.path.join(wrkdir, item))
recursive(os.getcwd())
尝试这个 :
def recurse(cur_dir,level=0):
for item_name in os.listdir(cur_dir):
item = os.path.join(cur_dir,item_name)
if os.path.isfile(item):
print('\t'*level+'-',item_name)
if os.path.isdir(item):
print('\t'*level+'>',item_name)
recurse(item,level+1)
recurse(os.getcwd())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.