2024-06-09 22:10:03 发布
网友
当使用os.listdir方法时,我需要知道结果列表中的哪个项是目录还是文件。
当我必须遍历这个列表中的所有目录,然后在每个目录中添加一个文件时,我遇到了一个问题。
有没有办法浏览这个列表并从中删除所有文件?如果不能使用os.listdir,应该使用什么方法?
谢谢。
dirs = filter(os.path.isdir, os.listdir('/path'))
注意,除非'/path'是当前工作目录,否则这将不起作用。listdir()返回叶名,因此您将询问“os.path.isdir('file.txt')”,如果当前目录在其他地方,您将看到错误的“file.txt”。
os.path.join()应该用于os.listdir()的输出,以获取完整的文件名。
children= [os.path.join('/path', child) for child in os.listdir('/path')] directories= filter(os.path.isdir, children)
这可能更快:
current, dirs, files = os.walk('/path').next()
目录列表将位于dirs变量中。
dirs
使用os.path.isdir筛选出目录。可能有点像
os.path.isdir
dirs = filter(os.path.isdir, os.listdir('/path')) for dir in dirs: # add your file
注意,除非'/path'是当前工作目录,否则这将不起作用。listdir()返回叶名,因此您将询问“os.path.isdir('file.txt')”,如果当前目录在其他地方,您将看到错误的“file.txt”。
os.path.join()应该用于os.listdir()的输出,以获取完整的文件名。
这可能更快:
目录列表将位于
dirs
变量中。使用
os.path.isdir
筛选出目录。可能有点像相关问题 更多 >
编程相关推荐