python:检查文件名是否是另一个文件名的子串

时间:2017-04-10 15:22:10

标签: python

请原谅我,如果这是一个非常简单的问题,但我是python的新手 我有两个文件路径文件列表,我想从第一个列表中选择第一个文件,检查具有第一个文件的子字符串的文件并运行我的代码。

例如:

first_list:

  1. first_file1 = /.../.../ testname1 .csv
  2. first_file2 = /.../.../ testname2.csv
  3. first_file3 = /.../.../ testname3.csv
  4. second_list

    1. second_file1 = /.../.../ random testname1 .csv
    2. second_file2 = /.../.../ randomtestname2.csv
    3. second_file3 = /.../.../randomtestname3.csv 我的代码应该只在first_file1和second_file1上运行,然后转到first_file2和second_file2
    4. 我试过

      if os.path.basename(first_file) in os.path.basename(second_file):
         file2 = this_file
         open(this_file,'r') as f:
           #then run my code 
      

1 个答案:

答案 0 :(得分:0)

尝试剥离文件扩展名并查看它是否有效,假设这些文件不是文件的真实名称。如果您要搜索的子字符串不在文件名的末尾,则比较将因扩展而失败。例如:

"name1.csv" in "testname1.csv"  # True
"test.csv" in "testname1.csv"   # False

第一个示例有效,因为name1.csv位于testname1.csv中,但第二个示例因文件扩展名而失败。

最简单的解决方法是通过切掉最后4个字符来删除扩展名,即:

my_search_string = os.path.basename(first_file)
if my_search_string[:-4] in os.path.basename(second_file):

[:-4]从字符串末尾向后计数4个字符并返回其他所有字符。