dirpath
变量指向一个目录,其中包含两个名为“Temp”的子文件夹:
dirpath='C:/Users/Temp/AppData/Local/Temp'
另一个变量word
存储需要从dirpath
中删除的目录名称
但只有它是最后一个子文件夹:
word='temp'
所以最终的结果应该是:
result='C:/Users/Temp/AppData/Local'
请注意dirpath
中的“Temp”以大写字母开头。虽然word
变量以小写形式定义'temp'。最终结果应保留dirpath
变量中使用的原始大写字符。
如何用最少的代码实现这一目标?
答案 0 :(得分:2)
您应该尝试使用"os" module。
特别是以下两个功能:
os.path.join()和os.path.split()
如果使用os.path.split(),则可以在删除列表的最后一个组件时使用os.path join来获取最终路径。在你的情况下,第一次拆分会给你你想要的东西。
>>> import os
>>> dirpath='C:/Users/Temp/AppData/Local/Temp'
>>> dirpath
'C:/Users/Temp/AppData/Local/Temp'
>>> os.path.split(dirpath)
('C:/Users/Temp/AppData/Local', 'Temp')
>>> result = os.path.split(dirpath)
>>> result[0]
'C:/Users/Temp/AppData/Local'
>>>
答案 1 :(得分:0)
使用正则表达式模块re
import re
dirpath = 'C:/Users/Temp/AppData/Local/Temp'
word = 'temp'
if re.search("/%s$"%word, dirpath.lower()):
dirpath = dirpath[:-len(word)]
print dirpath
也许你将这与第一个答案结合起来,我对os
- 模块
答案 2 :(得分:0)
dirpath='C:/Users/Temp/AppData/Local/Temp'
word='temp'
if dirpath.lower().endswith(word.lower()):
dirpath=dirpath[:-(len(word)+1)]