os.path.join失败,出现“TypeError:类型为'LocalPath'的对象没有len()”

时间:2014-11-20 07:25:20

标签: python pytest os.path

尝试使用' tmpdir'时出现此错误。在pytest测试中。

  

TypeError:类型' LocalPath'的对象没有len()

2 个答案:

答案 0 :(得分:15)

&#39; TMPDIR&#39;是<class 'py._path.local.LocalPath'>类型,只是包装&#39; tmpdir&#39;传递给os.path.join时的字符串

示例:

os.path.join(str(tmpdir), 'my_test_file.txt')

答案 1 :(得分:3)

或者,您可以直接访问LocalPath的字符串形式作为属性。

  os.path.join(tmpdir.strpath, 'my_test_file.txt')

我曾经认为使用属性访问意味着你没有将对象转换为字符串因此效率更高但是我认为我错了,但是,我喜欢这种风格更好一点,它更容易编写IMHO