仅限os.walk .jpg

时间:2012-12-14 03:59:30

标签: python os.walk

我只想要以.jpg或.pdf结尾的文件名。如何限制文件名搜索?

import os
from subprocess import call

for dirname, dirnames, filenames in os.walk('.'):
    for filename in filenames:
        jpg = os.path.join(dirname, filename)
        call(["./curl_recognize.sh", jpg, jpg+".txt", "-f txt"])

3 个答案:

答案 0 :(得分:5)

import fnmatch
import os

for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.txt'):
        print file

fnmatch比其他方法更好,因为它假设unix像通配符一样,包括:

* =匹配所有内容

?=匹配任何单个字符

[seq] =匹配seq中的任何字符

[!seq] =匹配不在seq中的任何字符

答案 1 :(得分:4)

怎么样:

for filename in filenames:
  if not filename.endswith('.jpg'):
    continue

答案 2 :(得分:0)

如果你想要一个最后所有文件的列表,你可以做这样的事情

filelist = []
for root, dirs, files in os.walk('.'):
    filelist = filelist + [os.path.join(x,root) for x in files if x.endswith(('.jpg','.pdf'))]