我在大型硬盘上乱码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)
Run Code Online (Sandbox Code Playgroud)
要么
for file in iglob("/path/to/dir/core.*")
print "Deleting: " + file
os.remove(file)
Run Code Online (Sandbox Code Playgroud) 我确信它只是语法 - 我无法弄清楚为什么我的代码:
import os
from collections import Counter
d = {}
for filename in os.listdir('testfilefolder'):
f = open(filename,'r')
d = (f.read()).lower()
freqs = Counter(d)
print(freqs)
Run Code Online (Sandbox Code Playgroud)
将无法正常工作 - 它显然可以看到'testfilefolder'文件夹并告诉我该文件存在,即找不到错误消息'file2.txt'.所以它可以找到告诉我它没有找到...
然而,我得到这段代码:
from collections import Counter
d = {}
f = open("testfilefolder/file2.txt",'r')
d = (f.read()).lower()
freqs = Counter(d)
print(freqs)
Run Code Online (Sandbox Code Playgroud)
奖金 - 这是做我想做的事情的好方法(从文件中读取并计算单词的频率)?这是我使用Python的第一天(虽然我有一些编程exp.)
我不得不说我喜欢Python!
谢谢,
布赖恩