文件将在哪里创建?

时间:2018-09-24 07:51:34

标签: python temporary-files

import tempfile

storage_path = os.path.join(tempfile.gettempdir(), 'storage.data')
    with open(STORAGE_PATH, 'w') as f:
    f.write(data)

将在哪个目录中创建文件?可以在那里看到它还是看不见?

3 个答案:

答案 0 :(得分:1)

您仅创建了字符串,仅此而已。

tempfile.gettempdir() function返回一个字符串:

  

返回用于临时文件的目录的名称

这只是一个名字。如果您需要了解系统上的位置,但又不想单步执行文档中概述的规则,请打印该文件。有3个环境变量和另外3个标准位置可以测试,以查看当前用户在何处有权创建文件。

接下来,os.path.join()接收字符串并输出一个字符串。不会在磁盘上创建任何东西来构建这些字符串。这将取决于您是否实际对要创建的内容使用该字符串进行操作(例如调用os.makedirs()open())。

如果您对该字符串使用普通的open()调用,则会在tempfile.gettempdir()位置创建一个常规文件,其他进程可以看到该文件。

如果您需要安全安全地创建一个临时文件,以使攻击者无法访问该文件或影响该文件的创建位置,请使用tempfile.TemporaryFile() constructor或{ {3}};在UNIX系统上,将导致该文件不再在目录中列出(该文件存在,但不能由其他进程打开)。但是,它将在tempfile.gettempdir()位置创建,因此它将耗尽该目录所在的相关磁盘分区上的磁盘空间。

答案 1 :(得分:0)

来自this link ...

列表为:

  • .as-console-wrapper { max-height: 100% !important; top: 0; }环境变量命名的目录
  • TMPDIR环境变量命名的目录
  • TEMP环境变量命名的目录
  • 特定于平台的位置:

    • 在Windows上,目录TMPC:\TEMPC:\TMP\TEMP依次排列。
    • 在所有其他平台上,目录\TMP/tmp/var/tmp依次排列。
    • 作为最后的选择,当前工作目录。

mac os的示例:

/usr/tmp

当您通过finder转到目录时,文件应该在那里。至于Windows,它可能是隐藏的,我相信您可以解锁。

答案 2 :(得分:0)

当前没有文件被创建。请查看tempfile documentation,以找到有关模块功能的更多信息,例如string input = "Hello****wide****world"; string pattern = "(****)"; string[] substrings = Regex.Split(input, pattern);

  

Python搜索标准目录列表以查找其中的一个   调用用户可以在其中创建文件。列表为:

     
      
  1. 由TMPDIR环境变量命名的目录。

  2.   
  3. 由TEMP环境变量命名的目录。

  4.   
  5. 由TMP环境变量命名的目录。

  6.   
  7. 特定于平台的位置:      在Windows上,目录C:\ TEMP,C:\ TMP,\ TEMP和\ TMP依次排列。      在所有其他平台上,目录/ tmp,/ var / tmp和/ usr / tmp依次排列。

  8.   
  9. 万不得已的是当前工作目录。

  10.