我正在为Blender编写一个DirectX导入程序,以便能够打开ascii.x文件。为此,我尝试编写一个好的Python脚本。我对它很陌生,其实我刚开始,但是效果不错,除了一个奇怪的。。。嗯。。。问题:我的.x文件非常大,正好是3263453字节长。我不会把我的全部代码放在这里,只是一些解决方法,这样问题仍然可见,并且在控制台中。在
>>> teszt = open('d:\DRA_ACTORDEF_T0.x','rt')
>>> teszt
<_io.TextIOWrapper name='d:\\DRA_ACTORDEF_T0.x' mode='rt' encoding='cp1250'>
然后我读了文件:
^{pr2}$但当我再次确认:
>>> import os
>>> os.fstat(teszt.fileno()).st_size
3263453
有人能帮我个忙告诉我,出什么问题了吗?也许我要设置一个缓冲区大小或类似的?不知道,这在Python中是如何工作的。在
我以与上面相同的方式打开文件,并使用.readline()
。在
非常感谢。在
编辑:
代码简化了。我需要.readline()
。在
fajlnev = 'd:\DRA_ACTORDEF_T0.x'
import bpy
import os
fajl = open(fajlnev, 'rt')
fajl_teljes_merete = os.fstat(fajl.fileno()).st_size
while (fajl.tell() < fajl_teljes_merete):
print(fajl.tell(),fajl.readline())
readlines
返回一个行的列表,因此当您len(t2)
时,它将返回文件中的行数和文件的长度。在如果您希望数字匹配,您应该:
另外,如果文件被编码,
^{pr2}$rt
可能会错误地解释换行符。所以这样做更安全:如果你想要逐行阅读流媒体,那么最好:
这将处理流式传输,而不是将整个文件读入内存。在
如果仍要使用
readline
:相关问题 更多 >
编程相关推荐