0

文字列内の部分文字列を見つけようとしていますが、必要な結果が得られません。

さまざまなディレクトリへの方向を含むいくつかの文字列があります。

'/Users/mymac/Desktop/test_python/result_files_Sample_8_11/logs', 
'/Users/mymac/Desktop/test_python/result_files_Sample_8_1/logs', 
'/Users/mymac/Desktop/test_python/result_files_Sample_8_9/logs'

これが私のコードの一部です。部分文字列と完全に一致するものを見つけようとしています:

 for name in sample_names:

        if (dire.find(name)!=-1): 

            for files in os.walk(dire):

                for file in files:
                    list_files=[]
                    list_files.append(file)
                    file_dict[name]=list_files

ディレクトリを含む文字列で Sample_8_1 を検索する場合、if 条件も Sample_8_11 という名前を受け入れることを除いて、すべて正常に機能します。同じディレクトリに複数回入るのを防ぐために完全に一致するようにするにはどうすればよいですか?

4

2 に答える 2

2

検索してみてくださいsample_8_1/(つまり、次のスラッシュを含めます)。あなたのコードが与えられると思いますdire.find(name+'/'). これは、迅速で汚いアプローチです。

于 2012-06-08T08:15:13.860 に答える
1

dire絶対パス名が入力されていると仮定します

for name in sample_names:
    if name in dire:
        ...

例えば

samples = ['/home/msvalkon/work/tmp_1',
           '/home/msvalkon/work/tmp_11']

dirs = ['/home/msvalkon/work/tmp_11']

for name in samples:
    if name in dirs:
        print "Entry %s matches" % name

Entry /home/msvalkon/work/tmp_11 matches 
于 2012-06-08T08:20:53.780 に答える