1

我只想要以 .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"])
4

3 回答 3

5
import fnmatch
import os

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

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

*= 匹配所有内容

?= 匹配任何单个字符

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

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

于 2012-12-14T04:48:38.607 回答
4

怎么样:

for filename in filenames:
  if not filename.endswith('.jpg'):
    continue
于 2012-12-14T04:01:57.457 回答
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'))]   
于 2012-12-14T04:20:44.747 回答