循环文件扩展,寻找非ASCII字符 - Python

时间:2011-11-13 04:23:38

标签: python ascii file-extension file-encodings

我编写了一个Python程序,它通过目录(及其子目录)查找包含非ASCII字符的文件。

我想改进它。我知道这个“目录”中的某些文件可能是ZIP,DTA / OUT,OMX,SFD / SF3等文件,这些文件被支持为非ASCII字符。所以我想知道它们在那里并筛选那些不应包含ASCII字符的文件,因为我的最终目标是找到不应包含非ASCII字符的文件,并删除它们(带有TB值的坏扇区的损坏磁盘)重要数据)。

我的想法是进一步查看Python中try / except块的“except”部分中的文件,如下所示:

try:
    content.encode('ascii')
    output.write(str(counter) + ", " + file + ", ASCII\n")
    print str(counter) + " ASCII file status logged successfully: " + file
    counter += 1 

except UnicodeDecodeError:
    output.write(str(counter) + ", " + file + ", non-ASCII\n")
    print str(counter) + " non-ASCII file status logged successfully: " + file
    counter += 1 

当我开始编写代码时,我意识到循环询问文件是'.zip'还是'.sfd' pr '.omx'等等...将是一个笨重的程序并采取永远。

有没有办法一个接一个地搜索一组文件扩展名?也许包含这些扩展名的文件要检查?还是我没想过的东西?如果这是一个愚蠢的问题我提前道歉,但是Python中有很多很酷的功能,我确信我错过了一些可以提供帮助的功能。

干杯。

1 个答案:

答案 0 :(得分:0)

我认为,由于没有任何答案,我可以继续自己回答并给出部分答案。我基本上采用了一种不同的方法,并寻找一个特定的文件,该文件对于该共享而言应该是丰富的,然后对每个文件都会做同样的事情。这有点像hacky,但它会完成j ob。