如何在Python中读取Minecraft的.mca文件,从而能够提取每个方块?

2024-09-29 01:20:10 发布

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

我找不到一种可以在python中使用的方式来读取Minecraft世界文件

我环顾了一下互联网,但找不到教程,只有几个图书馆声称他们可以做到这一点,但从来没有真正的工作

from nbt import *
nbtfile = nbt.NBTFile("r.0.0.mca",'rb')

我本以为这是工作,但相反,我得到的文件没有被压缩或诸如此类的错误

OSError:不是gzip文件(b'\x00\x00')

完全错误: 快退(最近一次呼叫最后一次): 文件“C:\Users\rober\Desktop\MinePy\MinecraftWorldReader.py版,第2行,在 NBT文件=nbt.nbt文件(“r.0.0.mca”,“rb”) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site packages\nbt\nbt.py公司“,第628行,在init中” self.u文件() 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site packages\nbt\nbt.py公司,第652行,在parse\u文件中 类型=标记字节(缓冲区=self.file文件) “本地程序\r\nB36”\nbt.py公司“,第99行,在init中” 自身解析缓冲区(buffer) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site packages\nbt\nbt.py公司,第105行,在缓冲区中 自我价值= 自行拆包(缓冲区读取(自身fmt尺寸))[0] 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py公司,第276行,已读 回归自我_缓冲区读取(大小) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib_压缩.py,第68行,在readinto中 数据=自述(len(字节视图)) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py公司,第463行,已读 如果不是self.\u read \u gzip \u header(): 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py公司“,第411行,在\u read \u gzip \u标题中” raise OSError('不是gzip文件(%r)'%magic) OSError:不是gzip文件(b'\x00\x00') [在0.2秒内完成]

任何帮助都将不胜感激

Robert


Tags: 文件pyliblocal公司usersappdata缓冲区