我正在编写Python脚本。
我有一个字符串,字符串的len()
为1048576
,字符串的sys.getsizeof()
为1048597
。
但是,当我将此字符串写入文件时,文件的字节大小为1051027
。我的代码如下,任何人都可以告诉我为什么文件的字节大小与字符串的字节大小不同?
print type(allInOne) # allInOne is my string
print len(allInOne)
print sys.getsizeof(allInOne)
newFile = open("./all_in_one7.raw", "w")
newFile.write(allInOne.encode('ascii'))
newFile.close()
我的字符串是allInOne
,它之前生成了许多进程,它是按照allInOne = numpy.uint8(dataset.pixel_array).tostring()
生成的,在此之上,dataset.pixel_array
的类型为numpy.ndarray
。我不知道这些信息是否有任何帮助。
答案 0 :(得分:5)
您的allInOne = numpy.uint8(dataset.pixel_array).tostring()
看起来不像文字。在Python中向文件写入除文本之外的任何内容时,您需要open the file in binary mode("wb"
而不是"w"
),以便Python不假定0x0A
字节为{{ 1}}行结尾并尝试将它们转换为Microsoft Windows上更常见的'\n'
行结尾。
要查看这是否是您的问题,count that particular character:
'\r\n'