我试图从尝试了几个代码的路径中获取文件名和扩展名,但无法获取文件名。
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
但是抛出
“在扫描字符串文字时停止运行”
答案 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];