我在一个存储区域拖网,路径看起来很像这样: storagearea / storage1 / ABC / ABCDEF1 / raw / 2013/05 / ABCFGM1
我不会总是知道今年是什么时候。我需要找到年度的起始指数位置
因此我正在寻找我在文件名中找到以下内容的地方(2010年,2011年,2012年,2013年,2014年等...)
我已按以下方式设置了一个列表:
list_ = ['2010', '2011','2012','2013','2014', '2015', '2016']
我可以找到它是否在文件名
中if any(word in file for word in list_):
print 'Yahooo'
但是如何在绝对路径中找到年份的字符索引?
答案 0 :(得分:1)
使用传统的循环,然后在找到匹配项时打印找到的单词的索引和break
,而不是使用生成器表达式(具有自己的作用域):
list_ = ['2010', '2011','2012','2013','2014', '2015', '2016']
for word in list_:
if word in file:
print file.index(word)
break
答案 1 :(得分:1)
我建议'|'
使用>>> list_ = ['2010', '2011','2012','2013','2014', '2015', '2016']
>>> p = "|".join(list_)
>>> p
'2010|2011|2012|2013|2014|2015|2016'
作为分隔符span()
group()
这些年...
>>> filename = "storagearea/storage1/ABC/ABCDEF1/raw/2013/05/ABCFGM1"
>>> m = re.search(p, filename)
>>> m.group()
'2013'
>>> m.span()
(37, 41)
...然后使用regular expression查找匹配项,php artisan make:model YourNewModel
和SELECT TOP 1 *
FROM Table
WHERE [Total Qty Ordrered] > [Qty Available]
ORDER BY [ORDER Number]
找到该匹配项的位置以及匹配的年份本身:
Laravel's built-in Auth Controllers
答案 2 :(得分:0)
string.index(s, sub[, start[, end]])¶
Like find() but raise ValueError when the substring is not found.