gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:18 27 4
gpt4 key购买 nike

Python 的新手,并在此站点上找到大量很棒的问题和解答。谢谢你们。这是我的困境:

我有一个位置树来递归搜索和移动某些类型的数据(如果它们存在),并且发现了很多可以用于此的地方。我的问题是命名约定。名称有一个标准格式,其中前缀是 3 或 4 个字符(每个字符中的一些),名称是几个,后缀是四个字符。一些名称使用“_”作为分隔符(PLAN_someFile_to_work_ZZTT 或 FOR_someOtherFile_XXYY。(PLAN、FOR - 是前缀....ZZTT、XXYY - 是后缀)

这里的问题是:如何将其干净地拆分为三个元素或“Pythonicly”拆分为前缀、fName 和后缀? fName 长度各不相同,如果存在则需要 '_'。我已经能够操纵和删除'_',但是在尝试仅获取 fName(有或没有“_ ".) 我被绊倒了,无法选择正确的字符数。

哦,我可以很好地提取前缀,并检查它是否存在于合法值的元组中。有没有办法轻松地从该元组中选择前缀?作为一种选择,我可以改用它或尝试从文件中解析它。

代码为测试代码。打印语句是为了开发利益,不会出现在最终代码中。一些测试是为了让我理解 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)

最佳答案

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])。无论哪种方式都会起作用。

关于python - 可变长度前缀字符串的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31032201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com