有没有办法删除PathLib模块中的目录及其内容?使用path.unlink()它只删除一个文件,使用path.rmdir()目录必须是空的。有没有办法在一个函数调用中做到这一点? 最佳答案 如您所知,仅有的两个用于删除文件/目录的Path方法是.unlink()和.rmdir()和你想要的也没有。Pathlib是一个提供跨不同操作系统的面向对象路径的模块,它并不意味着有很多不同的方法。Theaimofthislibraryistoprovideasimplehierarchyofclassestohandlefilesystemp
如何使用pathlib递归遍历给定目录的所有子目录?p=Path('docs')forchildinp.iterdir():child似乎只遍历给定目录的直接子级。我知道使用os.walk()或glob可以做到这一点,但我想使用pathlib,因为我喜欢使用路径对象。 最佳答案 使用Path.rglob(替换Path().glob("**/*")中的前导**):path=Path("docs")forpinpath.rglob("*"):print(p.name) 关于python-使用
我正在转换一些旧的Python代码以使用pathlib而不是os.path对于大多数与路径相关的操作,但我最终遇到了以下问题:我需要向已经有扩展名的路径添加另一个扩展名(而不是替换它)。使用os.path,由于我们只是在操作字符串,解决方案是添加带有字符串操作的扩展:newpath=path+'.res'它不适用于pathlib.Path,因为它不允许连接任意字符。我能找到的最接近的是:newpath=path.with_suffix(path.suffix+'.res')这看起来像是一种解决方法,因为它最后仍然使用字符串添加。而且它有一个新的陷阱,因为我一开始忘记处理已经有几个扩展并
使用pathlib模块创建路径对象,例如:p=pathlib.Path('file.txt')p对象将指向文件系统中的某个文件,因为我可以这样做,例如p.read_text()。如何获取字符串中p对象的绝对路径?似乎我可以使用例如os.path.abspath(p)来获取绝对路径,但是使用os.path方法很尴尬,因为我假设pathlib应该是os.path的替代品。 最佳答案 使用resolve()只需使用Path.resolve()像这样:p=p.resolve()这使您的路径成为绝对路径,并将所有相对部分替换为绝对部分,并将所