【发布时间】:2021-09-25 13:46:26
【问题描述】:
我正在尝试生成包含一些基本 Python 样板代码的临时文件。我的大部分代码都在工作,但我似乎不知道如何使用 tempfile 模块为临时文件设置全名。
我的代码(如下)生成像 /tmp/210925_104246et5p5tgz.py 这样的文件名,其中第一部分 (210925_104246) 是我想用作名称的时间戳。它和.py (et5p5tgz) 之间的字符是由NamedTemporaryFile() 函数自动生成的,我不知道如何防止这种情况发生。
import tempfile
import datetime
boiler = b'''
import numpy as np
import matplotlib.pyplot as plt
from astropy.io import ascii
def main():
"""
"""
def func():
"""
"""
return
if __name__ == '__main__':
main()
'''
def createFile():
"""
"""
pref = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
f = tempfile.NamedTemporaryFile(delete=False, suffix=".py", prefix=pref)
filepath = f.name
f.write(boiler)
f.close()
return filepath
filepath = createFile()
print(filepath)
【问题讨论】:
-
创建一个临时目录并在其中创建非临时文件怎么样?
-
嗯,如果可能的话,我更喜欢我的方法
-
我没有看到这个问题及其答案。我想不可能用
NamedTemporaryFile()定义自定义名称然后 -
挖掘源代码我发现了函数
tempfile.gettempdir(),它在Linux上提供/tmp,可能它在Windows上提供了其他临时文件夹——所以你可以用它来创建跨平台代码。