可变长度前缀字符串的操作

2024-04-20 04:15:34 发布

您现在位置:Python中文网/ 问答频道 /正文

对Python非常陌生,在这个站点上找到了大量的Qs和As。谢谢大家。我的困境是:

我有一个位置树递归地搜索和移动某些类型的数据(如果它们存在的话),并且已经找到了很多可以利用的地方。我的问题是命名约定。有一种标准的名称格式,其中前缀是3个或4个字符(每个字符中有一些),名称是几个字符,后缀是4个字符。有些名称使用''uu'作为分隔符(PLAN_someFile_to_work ZZTT,或FOR_someOtherFile_XXYY)。(PLAN,FOR-are前缀….ZZTT,XXYY-are后缀)

问题是:我如何将其清晰地分为三个元素,或者“Pythonicly”划分为前缀、fName和后缀?fName的长度不同,如果有则需要''uu'。我已经能够操作并删除''uu',但是当涉及到只获取fName时(无论是否有“u”),前缀长度为34个字符时,我会被绊倒,无法选择正确的字符数。在

噢,我可以提取前缀fine,并在合法值元组中检查它的存在性。有没有一种方法可以轻松地从元组中选择前缀?我可以使用它,或者尝试从文件中解析它,作为一个选项。在

代码是测试代码。Print语句是为了开发人员的利益,不会出现在最终的代码中。有些测试是为了让我理解Py是如何处理这些东西的。非常感谢。在

 for dirName, subdirList, fileList in os.walk(rootDir):
    print('Found directory: %s' % dirName)
    if dirName.lower().endswith('.xxx'):
        print('\n %s is a Database. ' % dirName)
        BADrop = ntpath.basename(dirName)
        print ('%s is variable BADrop. ' %BADrop)
        dropName = remove(BADrop, '_')
        print ('%s is variable dropName. ' %dropName)
        NST = BADrop.split('_') [0]
        NSP = BADrop.split('_') [-1]
        NSP = os.path.splitext(NSPrj) [0]
        NSt = os.path.splitext(BADrop) [1]
        abc = dropName[4:-8]
        if NST in pubTheme2: #pubTheme2 is a tuple list of legit values for the Prefix
            print ('%s is variable NST. ' %NST)
            print ('%s is variable NSP. ' %NSP)
            print ('%s is variable NSt. ' %NSt)
            print ('%s is variable abc. ' %abc)

Tags: 名称isos字符variablefname后缀print
1条回答
网友
1楼 · 发布于 2024-04-20 04:15:34
x = "PLAN_someFile_to_work_ZZTT"
y = "FOR_someOtherFile_XXYY"

def split(x):
    z = x.split("_")
    z[1] = "_".join(z[1:-1])
    del(z[2:-1])
    return z

print split(x)
print split(y)

这样的事情对你有用吗?在

PS,如果不希望下划线保留在“中间”部分,只需将"_".join(z[1:-1])更改为"".join(z[1:-1])。不管怎样都可以。在

相关问题 更多 >