python中字符串中的完全匹配

时间:2012-06-08 08:08:20

标签: python string

我试图在字符串中找到一个子字符串,但我没有达到我想要的结果。

我有几个包含不同目录方向的字符串:

'/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。我怎样才能使它完全匹配以防止多次进入同一目录?

2 个答案:

答案 0 :(得分:2)

您可以尝试搜索sample_8_1/(即包含以下斜杠)。我猜你的代码是dire.find(name+'/')。这只是一种快速而肮脏的方法。

答案 1 :(得分:1)

假设dire填充了绝对路径名

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

e.g。

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