0

次のような名前のバイナリファイルのコレクションがあります。

d010-recomb.bin
d011-recomb.bin
.............
.............
.............
d100-recomb.bin

Python glob モジュールを使用すると、フォルダー内のすべてのファイルにアクセスでき、これらのファイルをさらに処理できます。

import glob
binary = sorted(glob.glob('C:/Users/Desktop/bin/*.bin')) 

アクセスしたいファイルにいくつかの基準を使用することもできます。

たとえば、次のコードを使用すると、d010-recomb.bin から d019-recomb.bin までのすべてのファイルにアクセスできます。

binary = sorted(glob.glob('C:/Users/Desktop/bin/d01*.bin'))

しかし、この条件を使用すると、d015 から d025 などのファイルにアクセスできません。

これらのファイルにアクセスするにはどうすればよいか教えてください。

4

3 に答える 3

1

次を使用して、リストをフィルタリングできます。

def filter_path(path,l,r):
    i = int(os.path.basename(path)[1:4])
    if (i >= l) and (i <= r):
        return True
    return False

result = [i for i in binary if filter_path(i,19,31)]

ディレクトリ内の要素数について 100% 確信がある場合は、次のことができます。

result = binary[19:30]

または、データを並べ替えたら、最初のインデックス最後のインデックス、および[1] [2]を見つけることができます。

l = binary.find('C:/Users/Desktop/bin/d015.bin')
r = binary.find('C:/Users/Desktop/bin/d023.bin')
result = binary[l:r+1]
于 2013-05-27T08:46:25.983 に答える