python怎么下载模块并安装,python模块安装方法
如何在计算机编程语言中使用环球环球模块搜索子文件夹
在文件夹中打开一系列子文件夹,希望找到文本文件并打印文本文件中的行。我用这个:
配置文件=glob。glob(c:/users/Sam/desktop/file 1/* .txt))
但是,也无权访问子文件夹。有人知道如何使用同一命令访问子文件夹吗?
userymyasked 2019-06-12t 08:0:02 z
9个解决方案
105体积
在Python 3.5或更高版本中使用新的递归。文本文件(文本文件)功能:
配置文件=glob。glob(c:/users/Sam/desktop/file 1/* * .txt),recursive=True))))))
如果设置为. txt (fnmatch.filter)),则后跟路径分隔符以匹配零个或多个子目录。
在计算机编程语言的早期版本中,txt无法递归列出子目录中的文件。
在这种情况下,请组合使用。文本文件(文本文件)和. txt。
导入操作系统
导入用模式匹配文件名
path= c:/users/Sam/desktop/file 1
配置文件=[OS。路径。join(直接路径,f)
对于目录路径、目录名、os.walk中的文件(路径)
forfinfnmatch.filter(files, * .txt ) ]
这将递归遍历目录,并返回与。文本文件(文本文件)文件匹配的所有绝对路径名。在这些特定情况下,您可以使用fnmatch.filter()测试(.端开关),虽然fnmatch.filter()可能有点错误。
导入操作系统
path= c:/users/Sam/desktop/file 1
配置文件=[OS。路径。join(直接路径,f)
对于目录路径、目录名、os.walk中的文件(路径)
forfinfilesiff .Endswith(.txt ) ]
martijnpieters回答2019-06-12t 0833600336044 z
15票
glob2包支持通配符,速度相当快
代码=
导入博客2
glob2.glob(files/*/**))
""
timeit.timeit(code,number=1))。
在我的笔记本电脑上,ampgt60,000个文件路径。
megawacanswered 2019-06-12t 08:04:17 z
12票
要在直接子目录中查找文件:
配置文件=glob。glob(r c:(users(Sam(desktop(*(.txt)))
对于遍历所有子目录的递归版本,可以使用pathlib从Python 3.5传递递归=真。
配置文件=glob。glob(r c:(users(Sam)desktop(*(* .txt))))))))))))。
两个函数调用返回列表。您可以使用pathlib一次返回一个路径。或使用路径库:
从pathlib导入路径
path=path(r(c:(users)Sam(desktop))))))))))))))))))。
txt _ files _ only _ subdirs=path。glob( * .txt)))))))))))))))))0)
txt _ files _ all _ recursive=path。r全局( * .txt ) #包括当前目录
这两种方法都会返回迭代器。可以一次获取一个路径。
日志型文件系统回答2019-06-12t 08:05336004 z
6票
可以在Python 2.6中使用蚁酸的
导入格式
文件集=甲酸。文件集(include= * * . txt ,directory= c:/users/Sam/desktop/)
公开-我是这个包的作者。
andrewalcock回答2019-06-12t 08336005336038 z
2票
这是一个使用环球环球功能而不是用模式匹配文件名的改编版本。
定义文件(目录,模式=* ):
ifnotOS.path.exists(目录) :
raisevalueerror(“找不到目录{ }"。格式)目录) )
matches=[]
对于根、目录名、文件名、行走、目录,
对于文件名中的文件名:
full_path=os.path.join(根目录,文件名)
iffn匹配。过滤器([完整路径],模式) :
火柴。追加(操作系统。路径。join)根,文件名))
返回匹配
如果你有以下的目录结构的话
测试/文件
a0
())a0.txt
())a0.yaml
()b0
())b0.yaml
()b00.yaml
(a1
你可以做这样的事
files=utils.find _ files(测试/文件, **/b0/b* .yaml ))
[测试/文件/a0/b0/b0.yaml ,测试/文件/a0/b0/b00.yaml]
相当于用模式匹配文件名模式不仅与文件名匹配,还与整个文件名匹配。
cevarisanswered 2019-06-12t 08336006336022 z
2票
配置文件=glob。glob(c:/users/Sam/desktop/* */* .txt))))))))))))))))))))))。
使用血红蛋白2,而不是应用于所有情况
配置文件=glob2 .glob (c :/users/Sam/desktop/* .*.txt))))))))))))))))))))))。
nileshkumaranswered 2019-06-12t 08336006336055 z
2票
如果你能安装glob2软件包。
导入博客2
文件名=glob2。glob (c : (top _ directory (* (*。ext))where extisaspecificfileeextension
文件夹=glob2。glob (c :\\ top _ directory\(* )\ ))
所有文件名和文件夹:
all _ ff=glob2。glob (c : ((top _ directory ) (* ) (*)))
deab回答2019-06-12t 08:07336029 z
1票
如果运行的是Python 3.4,可以使用Path模块。路径方法支持路径模式。这意味着“这个目录和所有子目录,递归”。返回为所有匹配文件生成路径对象的生成器。
从pathlib导入路径
config files=path(c:/users/Sam/desktop/file 1/)。glob ) */*。txt)).
eugeneyarmashanswered 2019-06-12t 08336007336056 z
0票
正如Martijn所指出的,glob只能由Python 3.5中引入的configfiles操作符来实现。由于OP明确要求使用glob模块,下面的内容返回一个具有类似行为的惯性求值迭代器。
导入操作系统、glob、itertools
configfiles=ITER工具. chain.from _ iterable (glob。I glob (OS.path.join (root, *。txt ))
对于root、dirs、file sinos . walk(c:/users/Sam/desktop/file 1/))
请注意,此方法只能使用配置文件重复一次。如果您需要可用于多个操作的实际配置文件的列表,您必须使用list(configfiles)显式创建它。
fxx回答2019-06-12t 08:08336032 z
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。