Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环浏览文件扩展名,查找非ASCII字符-Python_Python_Ascii_File Extension_File Encodings - Fatal编程技术网

循环浏览文件扩展名,查找非ASCII字符-Python

循环浏览文件扩展名,查找非ASCII字符-Python,python,ascii,file-extension,file-encodings,Python,Ascii,File Extension,File Encodings,我编写了一个小Python程序,它查找包含非ASCII字符的文件的目录(及其子目录) 我想改进一下。我知道这个“目录”中的某些文件可能是ZIP、DTA/OUT、OMX、SFD/SF3等。。。应该具有非ASCII字符的文件。因此,我想知道这些文件是否存在,并筛选不应包含ASCII字符的文件,因为我的最终目标是找到不应包含非ASCII字符的文件,并将其删除(损坏的磁盘,其坏扇区包含TB的重要数据) 我的想法是进一步查看Python中try/except块的“except”部分中的文件,如下所示: t

我编写了一个小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中有太多很酷的函数,我确信我错过了一些可以帮助我的东西


干杯。

我想既然没有任何答案,我可以用部分答案自己回答。我基本上采取了一种不同的方法,寻找一个特定的文件,该文件对于这个共享来说是丰富的,然后对每个文件都做同样的事情。这有点老套,但它会完成作业。

我认为有一个比简单的排除列表更好的解决方案,但你知道这样做不会太慢,你正在做一个简单的正则表达式或字符串比较。它可能会帮助你的心态调整到正确的术语上。在几乎所有现代系统上,文件都包含字节,而不是字符。因此,您正在查找字节值128或更大。这些是“非ASCII”字节。如果您还想排除除换行符、制表符等以外的控件,则将查找某些小于32的字节值和127的字节值。感谢有关术语的课程。。。我会试着这样想,也许这会有助于我对这些问题的总体看法。