p = "\home\gef\Documents\abc_this_word_dfg.gz.tar"
我正在寻找一种检索this_word
的方法。
base = os.path.basename(p)
base1 = base.replace("abc_","")
base1.replace("_dfg.gz.tar","")
这行得通,但这并不理想,因为我需要提前知道要删除的字符串。也许regex
在这里合适吗?
答案 0 :(得分:0)
您提供的信息不多,但是从显示的内容来看,您不能仅使用字符串切片吗?
也许是这样的:
>>> p = os.path.join('home', 'gef', 'Documents', 'abc_this_word_dfg.gz.tar')
>>> p
'home/gef/Documents/abc_this_word_dfg.gz.tar'
>>> os.path.dirname(p)
'home/gef/Documents'
>>> os.path.basename(p)
'abc_this_word_dfg.gz.tar'
>>> os.path.basename(p)[4:-11]
'this_word'
答案 1 :(得分:0)
您提供的信息不多,但是从显示的内容来看,您不能仅拆分_
个字符吗?
也许是这样的:
>>> p = os.path.join('home', 'gef', 'Documents', 'abc_this_word_dfg.gz.tar')
>>> p
'home/gef/Documents/abc_this_word_dfg.gz.tar'
>>> os.path.dirname(p)
'home/gef/Documents'
>>> os.path.basename(p)
'abc_this_word_dfg.gz.tar'
>>> '_'.join(
... os.path.basename(p).split('_')[1:-1])
'this_word'
它由下划线分隔,然后丢弃第一部分和最后一部分,最后将其他部分与下划线连在一起(如果this_word
没有下划线,则只剩下一个部分,将不进行任何连接)