我正在尝试在不带缓冲区的python上创建文件,因此在使用write()的同时将其写入。但是由于某种原因,我得到了一个错误。
这是我正在使用的行:
my_file = open("test.txt", "a", buffering=0)
my_file.write("Testing unbuffered writing\n")
这是我得到的错误:
my_file = open("test.txt", "a", buffering=0)
ValueError: can't have unbuffered text I/O
无论如何,是否要对文件进行无缓冲写入?我在pyCharm上使用python 3。
谢谢
用
my_file = open("test.txt", "a")
my_file.write("Testing unbuffered writing\n")
my_file.flush()
Run Code Online (Sandbox Code Playgroud)
始终在写入后立即调用flush,它将“好像”它是无缓冲的
该错误不是来自Pycharm。
从Python文档中:
buffering是用于设置缓冲策略的可选整数。传递0以关闭缓冲(仅在二进制模式下允许)
您的代码仅适用于Python 2,而不适用于Python 3。因为字符串是Python 3中Unicode代码点的不可变序列。您需要在这里有字节。要在Python 3中做到这一点,您可以将unicode转换str为bytesunbuffered模式。
例如:
my_file.write("Testing unbuffered writing\n".encode("utf-8"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1878 次 |
| 最近记录: |