- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在一个大硬盘上用 python 查找文件。我一直在看 os.walk 和 glob。我通常使用 os.walk,因为我发现它更整洁而且似乎更快(对于通常大小的目录)。
有没有人对这两种方法都有经验,可以说哪个更有效?正如我所说,glob 似乎更慢,但你可以使用通配符等,就像 walk 一样,你必须过滤结果。这是查找核心转储的示例。
core = re.compile(r"core\.\d*")
for root, dirs, files in os.walk("/path/to/dir/")
for file in files:
if core.search(file):
path = os.path.join(root,file)
print "Deleting: " + path
os.remove(path)
或者
for file in iglob("/path/to/dir/core.*")
print "Deleting: " + file
os.remove(file)
最佳答案
我对 1000 个目录中的一小部分网页缓存进行了研究。任务是计算目录中的文件总数。输出是:
os.listdir: 0.7268s, 1326786 files found
os.walk: 3.6592s, 1326787 files found
glob.glob: 2.0133s, 1326786 files found
如您所见,os.listdir
是三个中最快的。并且 glog.glob
在这个任务中仍然比 os.walk
快。
来源:
import os, time, glob
n, t = 0, time.time()
for i in range(1000):
n += len(os.listdir("./%d" % i))
t = time.time() - t
print "os.listdir: %.4fs, %d files found" % (t, n)
n, t = 0, time.time()
for root, dirs, files in os.walk("./"):
for file in files:
n += 1
t = time.time() - t
print "os.walk: %.4fs, %d files found" % (t, n)
n, t = 0, time.time()
for i in range(1000):
n += len(glob.glob("./%d/*" % i))
t = time.time() - t
print "glob.glob: %.4fs, %d files found" % (t, n)
关于python - os.walk 还是 glob 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931099/
不幸的是,这段代码比“os.walk”运行得慢,但为什么呢? 会不会是“for”循环导致运行缓慢? “像‘os.walk’一样工作的代码:(“os.walk”函数做它做的事) 注意:我写作是为了提升自
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
我不确定我是否能正确表达这个问题,但就是这样...... 我想编写一个示例,其中小点具有它们移动所依据的速度 - 而且,还有一个随机运动叠加到“正确”运动上。使用下面的 Processing 代码,我
我正在写 Walk function in the go tutorial基本上按顺序遍历树。我的作品: package main import ( "fmt" "code.googl
我是 AngularJS 的新手,但我真的很喜欢 AngularJS 的工作方式,所以我想将它部署为我的 Google 云端点后端的客户端。然后我立即遇到两个问题: 1、放在哪里myCallback
使用 python 3.5 时 os.walk()并查看 dirname 输出,我得到了很多空列表(返回 [ ] )。我不知道为什么。 import os tdir = '/home/pontiac/
我终于让我的 Files.walk 开始工作了,我的问题是是否有任何方法可以识别收集到列表中的文件是否来自子文件夹或主文件夹,因为这些文件有删除功能,但来自子文件夹的文件用户不应删除文件夹。 pri
我需要在 os.walk 进程中获取当前目录。当只有一个子目录级别时它可以工作,但当有更多子目录级别时它会失败。请指教... [代码] # AFFECTS everything reachable f
当我 snmpWalk 一个 ip 时,需要 5 秒。但如果我在 for 循环中发送 snmpWalk 请求,步行时间就会增加。以多线程方式使用 snmp 或仅使用 ExecutorService 是
我正在尝试计算大量父目录中特定文件夹中的文件数量。每个项目都包含相同的文件夹结构: C:/Projects 2019 Project A Communi
我需要迭代文件服务器上的所有文件,并且我希望能够停止该进程并稍后在文件树中的任何位置恢复它。这可以用 os.walk 来完成,还是需要从头开始实现? 编辑:理想情况下,我希望解决方案是持久的,以便脚本
我有一个包含数千个文件的文件夹。我需要将每个文件的文件名与另一个数组中的列进行匹配。 import os filenames = [] for files in os.walk("Directory"
我想打开一个文件夹中的一系列子文件夹,找到一些文本文件并打印文本文件的一些行。我正在使用这个: from glob import glob import fileinput with open('ou
我是 stackoverflow 的新手。在编写以下代码时,我从该论坛获得了很多帮助。下面的代码搜索系统驱动器上的所有目录/子目录,但在查找“D”驱动器时,它只查找我运行该程序的文件夹后面的那些目录和
我有一个文件夹,其中有对应10个不同类的子文件夹,这些子文件夹的名称就是我的标签。我想出了以下代码将图像读入 Numpy 数组并保存标签。 import numpy as np import pand
我目前正在尝试编写一个简单的Python程序,该程序循环遍历一堆子目录,查找java文件并打印一些有关某些关键字使用次数的信息。我已经设法让这个在大部分情况下工作。我遇到的问题是打印有关更高目录的总体
我想遍历一个目录并搜索给定的文件。这是我编写的一些代码: import os def find(filename, path): for root, dirs, files in os.walk(
我不确定这种方法在 C 中是否正确(详细为 Atmel xmega 的 avrgcc)。数据是 ASCII 字符串。 #define BUFFER_SIZE 64 char dataBuffer[2
使用 Unity2017.3.1f1 Personal(64 位)为 Android 构建 VR 应用程序,使用 Cardboard VR SDK。该应用的目的是让用户以身临其境的方式可视化数据。 目
这是我要解决的问题。我有一个简单的 HTML 页面: Hello World
我是一名优秀的程序员,十分优秀!