我有一个字符串path='/home/user/Desktop/My_file.xlsx'
。
我想提取"My_file"
子字符串。我正在使用Django框架的python。
我试过这个:
re.search('/(.+?).xlsx', path).group(1)
但它会再次返回整个路径 有人可以帮忙。
答案 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