使用一个小脚本从给定的绝对路径(可以是Win和linux)中提取文件名。该脚本应该抓取存储路径的文件(每行一个),并使用pathlib提取文件名。但是,pathlib存在路径以斜杠-/或\结束的问题。 我有一个函数“ remove_slash”,该函数应以递归方式删除所有尾随的斜杠。
如果有经验的人可以看一下并指出正确的方向。
有一堆用于调试目的的打印,请丢弃。
ASCIIchars bar=moreASCIIchars/
答案 0 :(得分:0)
您的remove_slash
是递归的,您的递归调用没有返回任何内容。因此,在递归堆栈下的某个位置,将返回正确的字符串,但下一级将不返回任何内容,因此None
是实际的返回值。只需在您的else
块中添加退货:
def remove_slash(path):
print(f"Entering with : {path}")
if path[-1].isalnum():
print(f"iffffff {path[-1].isalnum()}::::{path[-1]} ::: {path}")
return path # **THIS NEVER GETS RETURNED**
else:
print(f"else : {path}")
return remove_slash(path[:len(path)-1])