Python doctest 示例失败

1 投票
1 回答
848 浏览
提问于 2025-04-16 04:57

这可能是个傻问题。

我正在尝试使用 Python 的 doctest 功能,想要运行这个例子。

例子最后是:

if __name__ == "__main__":
    import doctest
    doctest.testfile("example.txt")

我把 "example.txt" 放在了包含示例代码的源文件的同一个文件夹里,但我遇到了以下错误:

Traceback (most recent call last):
File "test_av_funktioner.py", line 61, in <module>
doctest.testfile("example.txt")
File "C:\Python26\lib\doctest.py", line 1947, in testfile
text, filename = _load_testfile(filename, package, module_relative)
File "C:\Python26\lib\doctest.py", line 219, in _load_testfile
return open(filename).read(), filename
IOError: [Errno 2] No such file or directory: 'example.txt'

我能否以某种方式告诉或设置 doctest 模块去哪里寻找指定的文件呢?

1 个回答

3

默认情况下,Doctest会在调用模块的目录下搜索文件(不过你可以改变这个设置)。

引用一下关于 doctest.testfile 的文档:

可选参数 module_relative 指定了文件名应该如何理解:

  • 如果 module_relative 设置为 True(这是默认值),那么 filename 就是一个与操作系统无关的模块相对路径。默认情况下,这个路径是相对于调用模块的目录;但如果指定了 package 参数,那么它就相对于那个包。为了确保与操作系统无关,filename 应该使用 / 来分隔路径的各个部分,并且不能是绝对路径(也就是说,它不能以 / 开头)。
  • 如果 module_relative 设置为 False,那么 filename 就是一个与操作系统相关的路径。这个路径可以是绝对的,也可以是相对的;相对路径是相对于当前工作目录来解析的。

撰写回答