用Python提取部分文件名

2024-09-30 06:33:28 发布

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

我试图用Python提取文件的某一部分。文件名各不相同,因此我无法指定使用特定字符串的起始位置。在

文件名如下:

ABC1D2E34_**ABC12345-67-Q89**_ABC12345_6_7_Scoring.csv

粗体部分是我想抓住的。文件的开头都是不同的,文件的其余部分也会根据文件的存储位置而有所不同,所以我需要一种方法来获取字符串,而不必太具体。在

name = re.findall('_(\S*[-]\S*[-])_', list)

我试过使用上面的代码,可以得到ABC12345-67-。 然而,当我试图添加到最后一位时,我总是得到超过我需要的东西:ABC12345-67-Q89_ABC12345_6_7_7

似乎应该有一个简单的解决办法,但我还没有找到它,所以任何帮助,谢谢。在


Tags: 文件csv方法字符串代码namere文件名
1条回答
网友
1楼 · 发布于 2024-09-30 06:33:28

这很简单,使用两个否定的字符集,第一个被锚定在字符串的开头:

filename = 'ABC1D2E34_ABC12345-67-Q89_ABC12345_6_7_Scoring.csv'
print(re.findall('^[^_]+_([^_]+)',filename))

印刷品:

^{pr2}$

请注意,regex并不是实现这一目标的唯一解决方案,而且并非最佳解决方案。在

您可以使用filename.split('_')[1],如下面的注释所述。在

相关问题 更多 >

    热门问题