使用 Python 中的文件生成临时目录以进行单元测试

Generate temporary Directory with files in Python for unittesting

我想创建一个包含目录和一些文件的临时文件夹:

import os
import tempfile
from pathlib import Path

with tempfile.TemporaryDirectory() as tmp_dir:
    # generate some random files in it
    Path('file.txt').touch()
    Path('file2.txt').touch()

    files_in_dir = os.listdir(tmp_dir)
    print(files_in_dir)


Expected: [file.txt,file2.txt]
Result: []

有人知道如何在 Python 中做到这一点吗?或者有没有更好的方法来做一些模拟?

您必须通过获取 tmp_dir 的路径在目录中创建文件。 with 上下文不会为您执行此操作。

with tempfile.TemporaryDirectory() as tmp_dir:
    Path(tmp_dir, 'file.txt').touch()
    Path(tmp_dir, 'file2.txt').touch()
    files_in_dir = os.listdir(tmp_dir)
    print(files_in_dir)

# ['file2.txt', 'file.txt']