在Python中,如何检查文件是否以子字符串开头或结尾?

时间:2017-06-10 02:50:11

标签: python file filesystems substring

我知道os.path.isfile(fname),但现在我需要搜索是否存在名为FILEnTEST.txt的文件,其中n可以是任何正整数(因此它可以是FILE1TEST.txt或{{ 1}})

我想这个解决方案可能涉及文件名以/或以某种方式调用FILE9876TEST.txt并用任何数字替换n的子字符串,但我不知道如何处理任何一种解决方案。< / p>

2 个答案:

答案 0 :(得分:6)

您需要编写自己的过滤系统,方法是获取目录中的所有文件,然后将它们与正则表达式字符串匹配,看看它们是否未通过测试:

import re

pattern = re.compile("FILE\d+TEST.txt")
dir = "/test/"
for filepath in os.listdir(dir):
    if pattern.match(filepath):
        #do stuff with matching file

我没有在安装了Python的机器附近来测试代码,但它应该是这样的。

答案 1 :(得分:2)

您可以使用正则表达式:

/FILE\d+TEST.txt/

示例:regexr.com

然后,您可以使用所述正则表达式并遍历目录中的所有文件。

import re
import os

filename_re = 'FILE\d+TEST.txt'
for filename in os.listdir(directory):
    if re.search(filename_re, filename):
        # this file has the form FILEnTEST.txt
        # do what you want with it now