问题

我正在创建一个基于类的不同格式字符串,用于通过通用类方法生成文件名.我正在使用Python 3.4 pathlib.Path模块进行面向对象的文件I / O.

在构建此字符串时,缺少路径分隔符,而不仅仅是将Windows版本放在中,我想添加一个独立于平台的文件分隔符.

我搜索了pathlib文档,并在这里回答这个问题,但所有示例都假设我正在构建一个Path对象,而不是字符串.pathlib函数将在任何字符串输出中添加正确的分隔符,但这些都是实际的路径 – 所以它不起作用.

除了编写字符串并解析它以弄清楚分隔符是什么之外,有没有办法直接获取当前的,正确的文件分隔符串?

更喜欢使用pathlib.Path的答案,而不是os或shutil包.

这是代码的样子:

在构造函数中:

     self.outputdir = Path('drive:\dir\file')
    self.indiv_fileformatstr = str(self.outputdir) + '{}_new.m'
 

在最后使用的方法中:

     indiv_filename = Path(self.indiv_fileformatstr.format(topic))
 

这会遗漏文件分隔符

  最佳答案

如果您转换为字符串以加入文件名,它首先缺少了 pathlib 的点。

而不是:

 self.indiv_fileformatstr = str(self.outputdir) + '{}_new.m'
 

你通常会做这样的事情:

 self.indiv_fileformatpath = self.outputdir / '{}_new.m'
self.indiv_fileformatstr = str(self.indiv_fileformatpath)
 

  相同标签的其他问题

pythonpython-3.xfilepathpathlib