python tempfile在哪里写入文件?

时间:2013-08-16 18:53:55

标签: python linux temporary-files

在python中,您可以按如下方式创建临时文件:

tempfile.TemporaryFile()

然后你可以写信给它。在GNU / Linux系统中写入的文件在哪里?我似乎无法在/ tmp目录或任何其他目录中找到它。

谢谢,

3 个答案:

答案 0 :(得分:9)

致电tempfile.gettempdir() function

  

返回当前选择的目录以在。

中创建临时文件

如果要影响创建临时文件的位置,可以通过将tempfile.tempdir value设置为其他目录来更改临时文件的创建位置。从文档中引用,如果该值为None,则规则如下:

  

如果在调用任何上述函数时未设置tempdir或None,Python将搜索标准目录列表并将tempdir设置为调用用户可以创建文件的第一个。列表为:

     
      
  1. TMPDIR环境变量命名的目录。
  2.   
  3. TEMP环境变量命名的目录。
  4.   
  5. TMP环境变量命名的目录。
  6.   
  7. 特定于平台的位置:   
        
    • 在RiscOS上,由Wimp$ScrapDir环境变量命名的目录。
    •   
    • 在Windows上,依次为C:\TEMPC:\TMP\TEMP\TMP目录。
    •   
    • 在所有其他平台上,按顺序列出目录/tmp/var/tmp/usr/tmp
    •   
  8.   
  9. 作为最后的手段,当前的工作目录。
  10.   

答案 1 :(得分:5)

查看文件句柄上的.name确实是查看文件存在位置的一种方法。对于TemporaryFile(在* NIX系统上),您将看到<fdopen>,表示打开的文件句柄,但没有相应的目录条目。如果您想保留指向基础文件的链接,则需要使用NamedTemporaryFile


如果您希望控制临时文件的位置,请查看dir参数:

TemporaryFile使用mkstemp,允许使用dir参数设置目录:

  

如果指定了dir,则将在该目录中创建该文件;否则,使用默认目录。默认目录是从与平台相关的列表中选择的,但应用程序的用户可以通过设置TMPDIRTEMPTMP环境变量来控制目录位置。

答案 2 :(得分:1)

shell上的

试试这个

    $python
>>> import tempfile
    >>>tempfile.gettempdir()

'/var/folders/5r/lxh8g5ln7zg43_l_3t0j7b1c0000gn/T'

这将显示python正在使用的实际临时路径。

您可以选择尝试此操作。 (这将产生与上面相同的结果)

    $python
>>> import tempfile
    >>>tempfile.tempdir
'/var/folders/5r/lxh8g5ln7zg43_l_3t0j7b1c0000gn/T'