我正在编写一个脚本,递归地遍历主文件夹中的子文件夹,并根据某个文件类型建立一个列表。我对剧本有意见。其当前设置如下
for root, subFolder, files in os.walk(PATH):
for item in files:
if item.endswith(".txt") :
fileNamePath = str(os.path.join(root,subFolder,item))
问题是子文件夹变量正在拉入子文件夹列表,而不是项目文件所在的文件夹。我之前想为子文件夹运行一个for循环并加入路径的第一部分,但我想再检查一下Id,看看在此之前是否有人有任何建议。谢谢你的帮助!
您应该使用
dirpath
,您称之为root
。提供了dirnames
,因此如果存在不希望os.walk
递归到的文件夹,则可以对其进行修剪。编辑:
在最近一次的否决之后,我突然想到
glob
是一个更好的扩展选择工具。也是生成器版本
用于Python 3.4+的Edit2
我将把John La Rooy's list comprehension翻译成嵌套for,以防其他人无法理解它。
应等同于:
这是list comprehension和函数os.walk和glob.glob的文档。
glob.glob()
得到了一个新的recursive parameter。如果要获取
my_path
下的每个.txt
文件(递归地包括子目录):如果需要迭代器,可以使用iglob作为替代:
相关问题 更多 >
编程相关推荐