gpt4 book ai didi

python - 如何读取 Minecraft .mca 文件以便在 python 中提取单个 block ?

转载 作者:行者123 更新时间:2023-12-05 05:09:40 26 4
gpt4 key购买 nike

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

我在互联网上四处寻找,但找不到任何教程,只有少数库声称可以做到这一点,但从未真正起作用

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

我希望这能工作,但我却收到有关文件未被压缩或类似问题的错误

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

完整错误:raceback(最后一次通话): 文件“C:\Users\rober\Desktop\MinePy\MinecraftWorldReader.py”,第 2 行,位于 nbtfile = nbt.NBTFile("r.0.0.mca",'rb') 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py”,第 628 行,init self.parse_file() 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py”,第 652 行,在 parse_file type = TAG_Byte(buffer=self.file) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py”,第 99 行,在 init self._parse_buffer(缓冲区) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py”,第 105 行,在 _parse_buffer 中 self.value = self.fmt.unpack(buffer.read(self.fmt.size))[0] 读取文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py”,第 276 行 返回 self._buffer.read(size) 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib_compression.py”,第 68 行,读入 数据 = self.read(len(byte_view)) 读取文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py”,第 463 行 如果不是 self._read_gzip_header(): 文件“C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py”,第 411 行,在 _read_gzip_header 中 raise OSError('不是压缩文件 (%r)' % magic)OSError: 不是压缩文件 (b'\x00\x00')[0.2s完成]

如有任何帮助,我们将不胜感激

Robert

最佳答案

使用 anvil 解析器。 (使用 pip install anvil-parser 安装)

Reading

import anvil

region = anvil.Region.from_file('r.0.0.mca')

# You can also provide the region file name instead of the object
chunk = anvil.Chunk.from_region(region, 0, 0)

# If `section` is not provided, will get it from the y coords
# and assume it's global
block = chunk.get_block(0, 0, 0)

print(block) # <Block(minecraft:air)>
print(block.id) # air
print(block.properties) # {}

https://pypi.org/project/anvil-parser/

关于python - 如何读取 Minecraft .mca 文件以便在 python 中提取单个 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57397934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com