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

python:检查文件名是否是另一个文件名的子字符串,python,Python,如果这是一个非常简单的问题,请原谅,但我对python还是新手 我有两个文件路径的文件列表,我想从第一个列表中选择第一个文件,检查具有第一个文件的子字符串的文件并运行我的代码 例如: "name1.csv" in "testname1.csv" # True "test.csv" in "testname1.csv" # False 第一张清单: 第一个文件1=/../../testname1.csv 第一个文件2=/…/…/testname2.csv 第一个文件3=/…/…/testn

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

例如:

"name1.csv" in "testname1.csv"  # True
"test.csv" in "testname1.csv"   # False
第一张清单:

  • 第一个文件1=/../../testname1.csv
  • 第一个文件2=/…/…/testname2.csv
  • 第一个文件3=/…/…/testname3.csv
  • 第二张名单

  • 第二个文件1=/…/…/randomtestname1.csv
  • 第二个文件2=/…/…/randomtestname2.csv
  • 第二个文件3=/…/…/randomtestname3.csv 我的代码应该只在第一个\u文件1和第二个\u文件1上运行,然后转到第一个\u文件2和第二个\u文件2
  • 我试过了

    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 
    

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

    "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个字符,并返回所有其他字符。

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

    "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个字符,并返回所有其他字符。

    您的代码看起来不错,这些文件名是真实名称吗?不要忘记,
    os.path.basename
    包含文件扩展名。我只是把它放在if语句之前,看看这些变量是否是您所期望的:
    print(os.path.basename(first_文件)
    我会检查一下,谢谢。如果我需要查找basename的一部分,而不是在randomtestname1.csv中查找testname1.csv,我只想查找name1.csv作为答案发布一些内容,看看这是否有帮助您的代码看起来不错,这些文件名是真实名称吗?别忘了,
    os.path.basename
    包含文件扩展名我只是把它放在if语句之前,看看这些变量是否是您期望的:
    print(os.path.basename(first_文件)
    我会检查一下,谢谢如果我需要查找basename的一部分,而不是在randomtestname1.csv中查找testname1.csv,我只想查找name1.csv作为答案发布一些内容,看看这是否有帮助