从路径获取文件名以及扩展名

时间:2019-03-29 10:00:03

标签: python python-3.x

我试图从尝试了几个代码的路径中获取文件名和扩展名,但无法获取文件名。

filename = '/home/lancaster/Downloads/a.ppt'
extention = filename.split('/')[-1]

这对于给定的文件路径工作正常,但是当我尝试使用具有'\'反斜杠的文件路径时,它将其作为转义序列并在扫描字符串文字时抛出此错误EOL

filename = '\home\lancaster\Downloads\a.ppt'
extention = filename.split('\')[-1]

这会在扫描字符串文字时抛出错误EOL

filename = '\home\lancaster\Downloads\a.ppt'
extention = filename.split('\')[-1]

预期结果是

  

a.ppt

但是抛出

  

“在扫描字符串文字时停止运行”

3 个答案:

答案 0 :(得分:1)

您使用的路径使用“ \”,在python中将被视为转义字符。您必须先将路径视为原始字符串,然后使用'\'将其分割:

>>> r'\home\lancaster\Downloads\a.ppt'.split('\\')[-1]
'a.ppt'

答案 1 :(得分:1)

编译器不仅会理解'\'。它始终是'\',后跟另一个字符。例如:“ \ n”代表换行符。同样,您需要使用“ \”而不是“ \”来表示“ \”。

换句话说,您可以将代码从filename.split('\')[-1]更改为filename.split('\\')[-1]

这应该为您提供所需的输出

答案 2 :(得分:0)

我建议使用模块os,例如:

import os
filename = '\home\lancaster\Downloads\a.ppt'
basename = os.path.basename(filename)
extension = basename.split('.')[1];