如何使用 Python pathlib 处理文件名中的多个点?
How to deal with multiple dots in a file name with Python pathlib?
当我尝试构建一个带有“.”的文件路径时,pathlib 出现问题。在其名称中,pathlib 模块会忽略它。
以下是示例行(我尝试了多个版本,结果都是一样的)
问题是原始文件名将来自另一个应用程序,所以我不能自己编辑名称。我也不想做字符串替换工作,如果 possible.
路径=r"c:\temp"
1
p=Path(path).joinpath("myfile.001").with_suffix(".bat")
2
p=Path(path, "myfile.001").with_suffix(".bat")
3
p=Path(path).with_name("myfile.001").with_suffix(".bat")
所有这些行都将屈服于
WindowsPath('C:/temp/myfile.bat')
那么我如何让 pathlib.Path 正确构建这个完整路径。最终路径必须是
WindowsPath('C:/temp/myfile.001.bat')
没有
WindowsPath('C:/temp/myfile.bat')
自然是想办法通过pathlib
本身来实现,不然只能用os.
谢谢
您告诉 pathlib 将后缀 .001
替换为后缀 .bat
。 pathlib 符合。
告诉 pathlib 添加 .bat
到现有的后缀。
p = Path(path, 'myfile.001')
p = p.with_suffix(p.suffix+'.001')
当我尝试构建一个带有“.”的文件路径时,pathlib 出现问题。在其名称中,pathlib 模块会忽略它。
以下是示例行(我尝试了多个版本,结果都是一样的)
问题是原始文件名将来自另一个应用程序,所以我不能自己编辑名称。我也不想做字符串替换工作,如果 possible.
路径=r"c:\temp"
1
p=Path(path).joinpath("myfile.001").with_suffix(".bat")
2
p=Path(path, "myfile.001").with_suffix(".bat")
3
p=Path(path).with_name("myfile.001").with_suffix(".bat")
所有这些行都将屈服于
WindowsPath('C:/temp/myfile.bat')
那么我如何让 pathlib.Path 正确构建这个完整路径。最终路径必须是
WindowsPath('C:/temp/myfile.001.bat')
没有
WindowsPath('C:/temp/myfile.bat')
自然是想办法通过pathlib
本身来实现,不然只能用os.
谢谢
您告诉 pathlib 将后缀 .001
替换为后缀 .bat
。 pathlib 符合。
告诉 pathlib 添加 .bat
到现有的后缀。
p = Path(path, 'myfile.001')
p = p.with_suffix(p.suffix+'.001')