Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NBT解析器Minecraft mca文件不是gzip文件错误_Python_Python 3.x_Gzip_Minecraft - Fatal编程技术网

Python NBT解析器Minecraft mca文件不是gzip文件错误

Python NBT解析器Minecraft mca文件不是gzip文件错误,python,python-3.x,gzip,minecraft,Python,Python 3.x,Gzip,Minecraft,我尝试使用模块(名为Binary Tag Reader/Writer)从文件系统和.mca region/anvil文件中用Python读取Minecraft world,该模块应该读取Minecraft中使用的NBT格式。它适用于level.dat等文件,但对r.0.0.mca等区域文件会抛出错误 编辑:我指的是minecraft存储在.minecraft/saves/“MyWorld/”文件夹中的自动生成的世界文件。例如(有效),以及存储在.minecraft/saves/“MyWorld”

我尝试使用模块(名为Binary Tag Reader/Writer)从文件系统和.mca region/anvil文件中用Python读取Minecraft world,该模块应该读取Minecraft中使用的NBT格式。它适用于level.dat等文件,但对r.0.0.mca等区域文件会抛出错误

编辑:我指的是minecraft存储在.minecraft/saves/“MyWorld/”文件夹中的自动生成的世界文件。例如(有效),以及存储在.minecraft/saves/“MyWorld”/region/文件夹中的mca文件(无效)。我从我的一个世界上传了两个示例文件

代码:

从nbt导入nbt
level_file=nbt.NBTFile(“level.dat”、“rb”)#起作用
region_file=nbt.nbt文件(“r.0.0.mca”、“rb”)
#不起作用

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/nbt/nbt.py", line 508, in __init__
    self.parse_file()
  File "/usr/local/lib/python3.5/dist-packages/nbt/nbt.py", line 532, in parse_file
    type = TAG_Byte(buffer=self.file)
  File "/usr/local/lib/python3.5/dist-packages/nbt/nbt.py", line 85, in __init__
    self._parse_buffer(buffer)
  File "/usr/local/lib/python3.5/dist-packages/nbt/nbt.py", line 90, in _parse_buffer
    self.value = self.fmt.unpack(buffer.read(self.fmt.size))[0]
  File "/usr/lib/python3.5/gzip.py", line 274, in read
    return self._buffer.read(size)
  File "/usr/lib/python3.5/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/usr/lib/python3.5/gzip.py", line 461, in read
    if not self._read_gzip_header():
  File "/usr/lib/python3.5/gzip.py", line 409, in _read_gzip_header
    raise OSError('Not a gzipped file (%r)' % magic)
OSError: Not a gzipped file (b'\x00\x00')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python3.5/dist-packages/nbt/nbt.py”,第508行,在__
self.parse_文件()
文件“/usr/local/lib/python3.5/dist-packages/nbt/nbt.py”,第532行,在parse_文件中
类型=标记字节(缓冲区=self.file)
文件“/usr/local/lib/python3.5/dist-packages/nbt/nbt.py”,第85行,在__
自解析缓冲区(缓冲区)
文件“/usr/local/lib/python3.5/dist-packages/nbt/nbt.py”,第90行,在缓冲区中
self.value=self.fmt.unpack(buffer.read(self.fmt.size))[0]
文件“/usr/lib/python3.5/gzip.py”,第274行,已读
返回自。\u缓冲区读取(大小)
文件“/usr/lib/python3.5/_compression.py”,第68行,在readinto中
数据=自读(len(字节视图))
文件“/usr/lib/python3.5/gzip.py”,第461行,已读
如果不是self.\u读取\u gzip\u头()
文件“/usr/lib/python3.5/gzip.py”,第409行,在读取头中
引发操作错误('不是gzip文件(%r)'%magic)
OSError:不是gzip文件(b'\x00\x00')

有什么建议可以让它工作吗?

r.0.0.mca绝对不是压缩的。大约80%的字节是零。

事实证明,NBT库只支持大约6年前被.mca文件取代的.mcr区域文件。但是,它是用Python编写的,并且支持这些文件。由于Minecraft保存格式的更改,虽然需要调整内容的解释,但可以成功读取文件。

您好,欢迎使用stack overflow!请将您的问题独立起来,以便其他人可以复制该问题。具体来说,你能提供如何获取你所引用的特定数据文件的信息吗?感谢你的输入,我指定了这些文件的含义,并上传了一个工作和一个不工作的示例文件,并将它们链接起来。