如何从python中的String获取子字符串

时间:2015-10-13 12:44:50

标签: python regex django

我有一个字符串path='/home/user/Desktop/My_file.xlsx'

我想提取"My_file"子字符串。我正在使用Django框架的python。

我试过这个:

re.search('/(.+?).xlsx', path).group(1)

但它会再次返回整个路径 有人可以帮忙。

3 个答案:

答案 0 :(得分:2)

如果您知道文件扩展名始终相同(例如“.xlsx”),我建议您这样做:

import os
filename_full = os.path.basename(path)
filename = filename_full.split(".xlsx")[0]

希望有所帮助

答案 1 :(得分:0)

更一般地说:

import os
filename = os.path.basename(os.path.splitext(path)[0])

答案 2 :(得分:-1)

If you need to match the exact extension:
# (?<=/) ensure that before the match is / 
# [^/]*.xlsx search for anything but / followed by .xlsx
mo1 = re.search('(?<=/)[^/]*.xlsx', path).group(0)
print(mo1)
My_file.xlsx

otherwise:

path='/home/user/Desktop/My_file.xlsx'

with regex:

mo = re.search(r'(?<=/)([\w.]+$)',path)
print(mo.group(1))
My_file.xlsx

with rsplit:

my_file = path.rsplit('/')[-1]
print(my_file)
My_file.xlsx