当前位置: 首页 > 面试题库 >

如何在Python中创建tmp文件?

刘承悦
2023-03-14
问题内容

我有引用文件路径的此函数

some_obj.file_name(FILE_PATH)

其中FILE_PATH是文件路径的字符串,即 H:/path/FILE_NAME.ext

我想在python脚本中使用字符串内容创建文件FILE_NAME.ext:

some_string = 'this is some content'

怎么办呢?Python脚本将放置在Linux盒子中。


问题答案:

有一个用于python的tempfile模块,但是创建一个简单的文件也可以解决这个问题:

new_file = open("path/to/FILE_NAME.ext", "w")

现在,您可以使用以下write方法对其进行写入:

new_file.write('this is some content')

使用tempfile模块,它可能看起来像这样:

import tempfile

new_file, filename = tempfile.mkstemp()

print(filename)

os.write(new_file, "this is some content")
os.close(new_file)

使用mkstemp完后,您有责任删除文件。使用其他参数,您可以影响文件的目录和名称。

更新

正如Emmet Speer正确指出的那样,使用时要考虑安全性mkstemp,因为客户端代码负责关闭/清理创建的文件。更好的方法是以下代码段(摘自链接):

import os
import tempfile

fd, path = tempfile.mkstemp()
try:
    with os.fdopen(fd, 'w') as tmp:
        # do stuff with temp file
        tmp.write('stuff')
finally:
    os.remove(path)

os.fdopen文件描述符包装在Python文件对象中,该文件对象会在with退出时自动关闭。os.remove不再需要时,调用删除文件。



 类似资料:
  • 问题内容: 我对Python中的鸡蛋文件有疑问。 我有很多按包组织的Python代码,并且我试图创建egg文件。我正在按照说明进行操作,但是它们很常见。 据此,看来我需要有一个setup.py文件。 您能告诉我我需要在setup.py文件中放入什么以及它应该放在哪里吗? 我想足以创建setup.py,然后启动“ setup.py bdist_egg”来获取egg文件。能否请你确认? 是否可以在鸡蛋

  • 我对tries和DAWGs(直接无环字图)很感兴趣,我已经读了很多关于它们的东西,但我不明白输出trie或DAWG文件应该是什么样子。 null 我也会很感激一个DAWG和Trie的输出。 我不想看到带有相互链接的气泡的图形表示,我想知道一旦一组单词被转换为try或dawgs后的输出对象。

  • 问题内容: 我有一个名为“ clients”的Sqlite 3和/或MySQL表。 使用python 2.6,如何创建带有标题的名为Clients100914.csv的csv文件?excel方言… Sql execute:select *仅提供表数据,但是我想要带有标题的完整表。 如何创建记录集以获取表头。表头应该直接来自不是用python编写的sql。 这段代码使我无法打开文件,也没有标题。也无

  • 问题内容: 我对尝试和DAWG(直接非循环字图)感兴趣,并且已经阅读了很多有关它们的信息,但我不知道输出trie或DAWG文件应该是什么样。 特里应该是嵌套词典的对象吗?每个字母分为几个字母,依此类推? 如果存在100k或500k条目,对这样的词典执行的查找会很快吗? 如何实现由多个单词组成的单词块,用-空格或空格分隔? 如何将单词的前缀或后缀链接到结构的另一部分?(对于DAWG) 我想了解最佳的

  • 问题内容: 如何在独立于平台的Python中创建GUID?我听说有一种在Windows上使用ActivePython的方法,但这仅是Windows,因为它使用COM。有没有使用普通Python的方法? 问题答案: Python 2.5及更高版本中的uuid模块提供了符合RFC的UUID生成。有关详细信息,请参见模块文档和RFC。 文件: Python 2:http://docs.python.or

  • 问题内容: 有没有办法在Python中声明常量?在Java中,我们可以按以下方式创建常量值: Python中上述Java常量声明的等效项是什么? 问题答案: 不,那里没有。你无法在Python中将变量或值声明为常量。只是不要更改它。 如果你正在上课,则等价于: 如果不是,那只是 但是你可能想看看Alex Martelli 编写的Python代码片段中的Constants。 从Python 3.8开