【发布时间】:2021-12-11 10:46:28
【问题描述】:
我有一个包含数百个文件的文件夹,名称如下:
"2017_05_S2B_7VEG_20170528_0_L2A_B01.tif"
约定:
year_month_ID_zone_date_0_L2A_B01.tif("_0_L2A_B01.tif" 和 "zone" 永不改变)
我需要遍历每个文件并根据它们的名称构建路径以便下载它们。 例如:
name = "2017_05_S2B_7VEG_20170528_0_L2A_B01.tif"
path = "2017/5/S2B_7VEG_20170528_0_L2A/B01.tif"
路径约定需要是:path = year/month/ID_zone_date_0_L2A/B01.tif
我想制作一个循环,每次遇到"_" 字符时将我的字符串“切割”成几个部分,然后以正确的顺序缝合不同的部分以创建我的路径名。
我试过了,但没有用:
import re
filename =
"2017_05_S2B_7VEG_20170528_0_L2A_B01.tif"
try:
found = re.search('_(.+?)_', filename).group(1)
except AttributeError:
# _ not found in the original string
found = '' # apply your error handling
如何在 Python 上实现这一点?
【问题讨论】:
-
那么,对于字符串中
_的前两次和最后一次出现,基本上你想用/替换下划线_? -
使用字符串拆分方法
-
我很难理解这个例子,但我不确定名称和路径之间发生了什么变化,或者变化的模式是什么 - 例如,不确定 05 如何更改为 5 .
-
就是这样,我没有决定约定。小于 10 的月份没有“0”,只有 1 个数字。不,我不想只用 / 替换 _,整个字符串都进行了重组。这就是我在回答中指定约定的原因:它从“year_month_ID_zone_date_0_L2A_B01.tif”变为“year/month/year_month_ID_zone_date_0_L2A/B08.tif”(所以不是从“_”替换为“/”,而是重新排列字符串)
-
* 路径约定错误:path = year/month/ID_zone_date_0_L2A/B01.tif
标签: python string loops substring