如何在python中将变量写入临时文件

2024-09-30 01:21:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图将变量写入临时文本文件,但出现以下错误:

Traceback (most recent call last):
  File "F:/A453/_Codes_/APP CONFIG/Temp.py", line 102, in <module>
    ORXQC-IIHL2-6AV55-FIJEV-2""")
  File "C:\Program Files (x86)\Python34\lib\tempfile.py", line 399, in     func_wrapper
    return func(*args, **kwargs)
TypeError: 'str' does not support the buffer interface

我的脚本如下:

^{pr2}$

请帮我克服这个错误

谢谢


Tags: inpyappmost错误linecallcodes
3条回答

TemporaryFile的默认模式是"w+b",例如二进制。必须为文本显式提供模式:

TEMPDIR = tempfile.TemporaryFile(mode="w+")

打开TempFile返回的文件的默认模式是'w+b'。该字符串中的b表示它是以二进制模式打开的,您需要将bytes实例传递给它的write方法,而不是像您现在这样的str实例。在

你有几个选择。您可以将字符串编码为bytes。或者,您可以向TempFile传递一个模式,让它以文本模式打开文件(这样write需要Unicodestr实例)。使用适当的模式可能是更好的解决方案,但您的里程数可能会有所不同。在

docs解释了在打开要写入的文件时,tempfile默认使用二进制模式。因此,您不能向它写入字符串(这只适用于文本模式),只能写入bytes对象。在

因此,要么重写默认值(如Daniel的回答),要么用适当的编码对字符串进行编码:

TEMPDIR.write("foo".encode("utf-8"))

或者立即使用bytes对象:

^{pr2}$

相关问题 更多 >

    热门问题