我在文本文件中有一些数据,主要是文件夹路径
home/user/Desktop/arandomname/2017/01
home/user/Desktop/couldbeanothername/2017/01
home/user/Desktop/guesswhatname/2017/01
我想在" Desktop /"之间选择字符串。和" / 2017",我尝试使用职位但由于字符串长度不同而肯定无法工作
目前我正在使用
for i in content:
print i.partition('/')[-1].rpartition('/20')[0]
输出达到
home/user/Desktop/arandomname
home/user/Desktop/couldbeanothername
home/user/Desktop/guesswhatname
有什么建议吗?
答案 0 :(得分:1)
使用split()
needed_data = content.split("/")[3]
答案 1 :(得分:0)
使用re
模块
In [88]: re.match(r'.*Desktop/(.*)/2017.*', "home/user/Desktop/arandomname/2017/01").group(1)
Out[88]: 'arandomname'
答案 2 :(得分:0)
您可以使用正则表达式:
s = 'home/user/Desktop/arandomname/2017/01'
re.findall("Desktop/([^/]+)/\d{4}", s)[0]
# 'arandomname'
或直接搜索:
m = s[s.index('Desktop/') + len('Desktop/') : ]
m[ : m.index('/')]
# 'arandomname'
答案 3 :(得分:0)
您可以使用pathlib
module:
from pathlib import Path
content = [
'home/user/Desktop/arandomname/2017/01',
'home/user/Desktop/couldbeanothername/2017/01',
'home/user/Desktop/guesswhatname/2017/01']
for strg in content:
path = Path(strg)
print(path.parts[3])
# prints:
# arandomname
# couldbeanothername
# guesswhatnam
path.parts
返回构成路径的目录(和文件)的元组。
模块提供了更多与路径相关的方法,以备不时之需。