gpt4 book ai didi

python-3.x - 更改 tempfile.NamedTemporaryFile 的字符集

转载 作者:行者123 更新时间:2023-12-01 02:40:36 31 4
gpt4 key购买 nike

我正在编写一个 python3 程序,该程序生成一个文本文件,该文件使用 asciidoc 进行后处理以生成 html 和 pdf 格式的最终​​报告。

python 程序生成数千个包含图形的文件,这些文件将包含在最终报告中。文件的文件名是用 tempfile.NamedTemporaryFile 生成的

问题在于临时文件使用的字符集定义为:

字符 = "abcdefghijklmnopqrstuvwxyz0123456789_"

然后我以一些名为“_6456_”的文件结尾,asciidoc 将“_”解释为格式并插入一些破坏报告的 html。

我需要找到一种方法来“转义”asciidoc 中的文件名或控制临时文件中的字符。

我目前的解决方案是在关闭临时文件后重命名临时文件,用其他字符替换“_”(不在临时文件使用的字符列表中以避免冲突)但我觉得有一个更好的方法。

我将不胜感激任何想法。我还不是很精通 python,我认为在临时文件中重载 _RandomNameSequence 会起作用,但我不确定该怎么做。

问候。

最佳答案

Hack 方式,基于操作 tempfile 内部结构:

class MyRandomSequence(tempfile._RandomNameSequence):
characters = "xyz123"

tempfile._name_sequence = MyRandomSequence()
# make your temporary file

例子:

>>> tempfile.NamedTemporaryFile()
<open file '<fdopen>', mode 'w+b' at 0x1013b5540>
>>> k=_
>>> k.name
'/var/folders/Su/SuMQtmxiE941sUwe8d91lE+++TU/-Tmp-/tmp33x22z'

关于python-3.x - 更改 tempfile.NamedTemporaryFile 的字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522844/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com