2024-09-27 00:22:49 发布
网友
f_output.write('\n{}, {}\n'.format(filename, summary))
我正在打印输出作为文件名。我得到的输出为VCALogParser\u输出_ARW.log文件,VCALogParser\u输出_CZC.log公司等等。但我只对印刷ARW、CZC等感兴趣。所以请有人告诉我如何分割这段文字?你知道吗
如果您只对CZC和ARW感兴趣而没有.log,那么可以使用^{}方法:
CZC
ARW
.log
>>> import re >>> s1 = 'VCALogParser_output_ARW.log' >>> s2 = 'VCALogParser_output_CZC.log' >>> re.search(r'.*_(.*)\.log', s1).group(1) 'ARW' >>> re.search(r'.*_(.*)\.log', s2).group(1) 'CZC'
或者更好地制作模式p,然后在格式化字符串时调用其search方法:
p
search
>>> p = re.compile(r'.*_(.*)\.log') >>> >>> '\n{}, {}\n'.format(p.search(s1).group(1), p.search(s2).group(1)) '\nARW, CZC\n'
另外,使用^{}以及积极的前瞻性和组命名可能会有所帮助:
>>> p = re.compile(r'.*(?<=_)(?P<mystr>[a-zA-Z0-9]+)\.log$') >>> >>> >>> p.sub('\g<mystr>', s1) 'ARW' >>> p.sub('\g<mystr>', s2) 'CZC' >>> >>> >>> '\n{}, {}\n'.format(p.sub('\g<mystr>', s1), p.sub('\g<mystr>', s2)) '\nARW, CZC\n'
如果您不能或不想使用re模块,则可以定义不需要的字符串长度,并用它们索引字符串变量:
re
>>> i1 = len('VCALogParser_output_') >>> i2 = len ('.log') >>> >>> '\n{}, {}\n'.format(s1[i1:-i2], s2[i1:-i2]) '\nARW, CZC\n'
但请记住,只要您的所有字符串变量中都有这些公共字符串,上述内容就有效。你知道吗
fname.split('_')[-1]
但这会给你CZC.log公司', 'ARW.log文件'依此类推,假设所有文件都具有相同的下划线分隔格式。你知道吗
filename.split('_')[-1].split('.')[0]
这会给你:“ARW”
summary.split('_')[-1].split('.')[0]
这会给你:“CZC”
如果您只对} 方法:
CZC
和ARW
感兴趣而没有.log
,那么可以使用^{或者更好地制作模式
p
,然后在格式化字符串时调用其search
方法:另外,使用^{} 以及积极的前瞻性和组命名可能会有所帮助:
如果您不能或不想使用
re
模块,则可以定义不需要的字符串长度,并用它们索引字符串变量:但请记住,只要您的所有字符串变量中都有这些公共字符串,上述内容就有效。你知道吗
但这会给你CZC.log公司', 'ARW.log文件'依此类推,假设所有文件都具有相同的下划线分隔格式。你知道吗
这会给你:“ARW”
这会给你:“CZC”
相关问题 更多 >
编程相关推荐