60

ディレクトリには、多かれ少なかれ次のような名前のファイルがたくさんあります。

001_MN_DX_1_M_32
001_MN_SX_1_M_33
012_BC_2_F_23
...
...

Python では、ディレクトリから特定の文字列で始まるファイルを選択するコードを作成する必要があります。たとえば、文字列が の場合001_MN_DX、Python は最初のファイルを選択します。

どうすればいいですか?

4

7 に答える 7

81
import os
prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")]
于 2013-03-09T17:16:59.430 に答える
56

os.listdiros.path.joinおよびを使用してみてくださいos.path.isfile
長い形式 (for ループを含む) では、

import os
path = 'C:/'
files = []
for i in os.listdir(path):
    if os.path.isfile(os.path.join(path,i)) and '001_MN_DX' in i:
        files.append(i)

コード、リスト内包表記は

import os
path = 'C:/'
files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) and \
         '001_MN_DX' in i]

長い説明については、こちらをご覧ください...

于 2013-03-09T16:25:24.510 に答える
8
import os, re
for f in os.listdir('.'):
   if re.match('001_MN_DX', f):
       print f
于 2013-03-09T16:30:56.443 に答える
6

osモジュールを使用して、ディレクトリ内のファイルを一覧表示できます。

例:名前が001_MN_DXで始まる現在のディレクトリ内のすべてのファイルを検索します

import os
list_of_files = os.listdir(os.getcwd()) #list of files in the current directory
for each_file in list_of_files:
    if each_file.startswith('001_MN_DX'):  #since its all type str you can simply use startswith
        print each_file
于 2013-03-09T16:40:44.050 に答える