- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在编写一个 Python 脚本,该脚本需要创建大约 50 个不同的临时文件,这些文件在脚本执行过程中经常被附加并在最后合并。我确信 tempfile
模块可以满足我的需要,但我无法通过阅读文档来弄清楚如何。
我想使用临时文件(而不是变量)来节省系统内存,因为随着脚本处理数以万计的其他文件,这些数据 block 会变得越来越大。
以下代码块是我目前用来在非临时目录中(临时)创建这些文件的 hack:
item = (string from another file) # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
totalitems.add(item)
with open(tmpfile, 'w') as itemfile:
output = some stuff
tmpfile.write(output)
else:
with open(tmpfile, 'a') as itemfile:
output = different stuff
tmpfile.write(output)
我认为我需要的是 tempfile.NamedTemporaryFile()
。根据documentation :
That name can be retrieved from the name member of the file object.
很遗憾,我不明白这意味着什么。当我在我正在处理的文件中再次遇到相应的“项目”时,我只需要能够再次调用每个文件。我认为这是相当直截了当的,我只是很密集。万一这很重要,我有适用于 Python 2.7.1 和 3.2.3 的这个脚本的版本。我只需要一个或另一个工作;我创建这两个只是作为一个学习练习。
最佳答案
"That name can be retrieved from the name member of the file object."
表示您可以像这样获取创建的临时文件的名称:
In [4]: import tempfile
In [5]: tf = tempfile.NamedTemporaryFile()
In [6]: tf.name # retrieve the name of the temp file just created
Out[6]: 'c:\\blabla\\locals~1\\temp\\tmptecp3i'
注意:默认情况下,文件在关闭时会被删除。但是,如果 delete
参数为 False,则不会自动删除文件。见 Python docs了解更多信息。
由于您可以检索要创建的 50 个临时文件中的每一个的名称,因此您可以将它们保存在例如列表中,然后再使用它们(如您所说)。请务必相应地设置 delete
值,以便文件在您关闭它们时不会消失(以防您打算关闭,然后再重新打开它们)。
我在这里更详细地解释了如何创建临时文件名 Best way to generate random file names in Python
关于python - 如何使用 tempfile.NamedTemporaryFile()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043372/
我在用 Python 写入 NamedTemporaryFile 然后读回时遇到问题。该函数通过 tftpy 将文件下载到临时文件,读取该文件,对内容进行哈希处理,然后将哈希摘要与原始文件进行比较。有
我有以下(简化的)代码: with NamedTemporaryFile() as f: f.write(zip_data) f.flush() subprocess.call
我想加载临时文件进行更改或者只是能够将它上传到某个地方,当我尝试这样做时 - 它会抛出一个错误,如下所示 我已将权限设置为 w+ - 理想情况下应该允许我读写,不确定我在这里遗漏了什么 - 任何帮助将
我正在尝试将文件下载到临时文件并将该文件发布到另一项服务。我尝试使用 NamedTemporaryFile 进行此操作,但我被迫关闭文件并重新打开它。 def main(): validate
我正在尝试编写一系列写入临时文件的函数,然后对写入的文件进行处理。我试图了解文件的处理方式。 我想在摘要中做的是: def create_function(inputs): # create
这是对 this question 的后续跟进关于使用 NamedTemporaryFile() 我有一个创建和写入临时文件的函数。然后我想在另一个函数中使用该文件,该函数调用使用该文件的终端命令(该
创建此类文件后如何更改 NamedTemporaryFile 的删除标志? 为什么?虽然大多数时候我不需要保留临时文件,但如果我从代码内部检测到错误,我想保留它们以便能够分析它们。 最佳答案 对于现在
在 Python 2 中,创建临时文件并访问它很容易。然而,在 Python 3 中,情况似乎不再如此。我对如何获取使用 tempfile.NamedTemporaryFile() 创建的文件感到困惑
我正在编写一个 Python 脚本,该脚本需要创建大约 50 个不同的临时文件,这些文件在脚本执行过程中经常被附加并在最后合并。我确信 tempfile 模块可以满足我的需要,但我无法通过阅读文档来弄
原始问题 - MCVE 以下脚本应该使用 chrome headless 打印成 pdf(我运行的是 windows 10 和 python 3.6): import subprocess from
Python tempfile.NamedTemporaryFile 的这种用法是否安全(即避免了已弃用的 tempfile.mktemp 的安全问题)? def mktemp2(): """
Python 模块 tempfile 包含 NamedTemporaryFile 和 TemporaryFile。前者的文档说 Whether the name can be used to open
这是我创建的一个测试,用于重现我在使用时遇到的问题临时文件.NamedTemporaryFile()。问题是当我使用 tempfile 时我的 CSV 中的数据从文件末尾被截断。 当您运行此测试脚本时
我是 python2.6 编程的新手,我的目标是在 os 的临时目录中创建 .txt 或 .xls“临时文件”并向其中写入一些数据。然后从“临时文件”中读取数据,之后读取数据完成,从临时目录中删除“临
我正在 Ubuntu 16.04 下的 Python 3 中将一些内容写入 tempfile.NamedTemporaryFile。在某些情况下,我想在写入完成后将该文件复制到其他位置。使用以下代码重
我无法在最初创建 NamedTemporaryFile 后修改它的内容。 按照下面的示例,我从 URL 的内容(JSON 数据)创建了一个 NamedTemporaryFile。 然后,我的目标是重新
python docs for tempfile.NamedTemporaryFile说: Whether the name can be used to open the file a second
我想使用 tempfile.NamedTemporaryFile() 将一些内容写入其中,然后打开该文件。我写了以下代码: tf = tempfile.NamedTemporaryFile() tfN
通过搜索现有问题尚未找到解决方案,这里是: Python 的新手。尝试使用 tempfile 包创建临时文件。以下是因 ValueError 失败的代码行: (temp_file, self.buck
我正在编写一个 python3 程序,该程序生成一个文本文件,该文件使用 asciidoc 进行后处理以生成 html 和 pdf 格式的最终报告。 python 程序生成数千个包含图形的文件,这
我是一名优秀的程序员,十分优秀!