问题描述
import tempfile
storage_path = os.path.join(tempfile.gettempdir(), 'storage.data')
with open(STORAGE_PATH, 'w') as f:
f.write(data)
文件将在哪个目录中创建? 是否有可能在那里看到它或它是不可见的?
1楼
您只创建了一个string ,仅此而已。
返回一个字符串:
返回用于临时文件的目录名称
这只是一个名字。 如果您需要知道系统上的位置但不想逐步执行文档中列出的规则,请打印它; 有 3 个环境变量和另外 3 个标准位置可供测试,以查看当前用户有权创建文件的位置。
接下来, os.path.join()
接受字符串并输出一个字符串。
没有在磁盘上创建任何内容来构建这些字符串。
这将取决于您是否真的对该字符串执行了某些操作(例如调用或open()
)来确定将创建的内容。
如果对该字符串使用普通的open()
调用,则会在tempfile.gettempdir()
位置创建一个对其他进程可见的常规文件。
如果您需要安全地创建临时文件,以便攻击者无法访问该文件或影响其创建位置,请使用或;
在 UNIX 系统上,这将导致目录中不再列出文件(该文件存在但不能被其他进程打开)。
但是,它将在tempfile.gettempdir()
位置创建,因此它将用完该目录所在的相关磁盘分区上的磁盘空间。
2楼
从...
名单是:
-
由
TMPDIR
环境变量命名的目录 -
由
TEMP
环境变量命名的目录 -
由
TMP
环境变量命名的目录 特定于平台的位置:
-
在 Windows 上,目录
C:\\TEMP
、C:\\TMP
、\\TEMP
和\\TMP
,\\TMP
顺序。 -
在所有其他平台上,目录
/tmp
、/var/tmp
和/usr/tmp
,/usr/tmp
顺序。 - 作为最后的手段,当前工作目录。
-
在 Windows 上,目录
来自 mac os 的示例:
/var/folders/4x/2rjwjpyn1pn9_0t1r5_m8blr0000gn/T/storage.data
当您通过 finder 进入目录时,文件应该在那里。 至于 Windows,它可能是隐藏的,我相信你可以解锁。
3楼
当前没有正在创建的文件。
查看以查找有关模块功能的更多信息,例如.gettempdir()
:
Python 搜索标准目录列表以查找调用用户可以在其中创建文件的目录。该列表是:
由 TMPDIR 环境变量命名的目录。
由 TEMP 环境变量命名的目录。
由 TMP 环境变量命名的目录。
特定于平台的位置:在 Windows 上,目录 C:\\TEMP、C:\\TMP、\\TEMP 和 \\TMP,按顺序排列。 在所有其他平台上,目录 /tmp、/var/tmp 和 /usr/tmp,按此顺序。
作为最后的手段,当前工作目录。