小编Rob*_*cas的帖子

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

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

我浏览了互联网,但找不到任何教程,只有几个库声称他们可以做到这一点,但从未真正起作用

from nbt import *
nbtfile = nbt.NBTFile("r.0.0.mca",'rb')
Run Code Online (Sandbox Code Playgroud)

我预计这会起作用,但我收到了有关文件未压缩或类似内容的错误

完整错误:

Traceback (most recent call last):
  File "C:\Users\rober\Desktop\MinePy\MinecraftWorldReader.py", line 2, in <module>
    nbtfile = nbt.NBTFile("r.0.0.mca",'rb')
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py", line 628, in __init__
    self.parse_file()
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py", line 652, in parse_file
    type = TAG_Byte(buffer=self.file)
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py", line 99, in __init__
    self._parse_buffer(buffer)
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\site-packages\nbt\nbt.py", line 105, in _parse_buffer
    self.value = self.fmt.unpack(buffer.read(self.fmt.size))[0]
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py", line 276, in read
    return self._buffer.read(size)
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "C:\Users\rober\AppData\Local\Programs\Python\Python36-32\lib\gzip.py", …
Run Code Online (Sandbox Code Playgroud)

python file-handling minecraft

4
推荐指数
1
解决办法
3468
查看次数

Tkinter 画布滚动条变灰

我尝试遵循一些教程来了解如何让画布滚动,但它最终总是呈灰色。我尝试在画布上添加一个滚动区域,但我不理解它,只知道它没有变灰,但仍然什么也没做。

我的代码(运行后将其调整为垂直较短,但它仍然呈灰色):

self.main_window = Tk()
        self.root = Frame(self.main_window, bg="white")
        self.root.pack(fill=BOTH, expand=1)

        # TOP SECTION
        self.top = Frame(self.root, bg="white")
        self.top.pack(fill=BOTH, expand=1)
        Label(self.top, text="#########################################").pack()

        # BOTTOM SECTION
        self.bottom = Frame(self.root, bg="white")
        self.bottom.pack(fill=BOTH, expand=1)

        # BOTTOM-LEFT SECTION
        self.canvas = Canvas(self.bottom, bg="white")
        self.canvas.pack(fill=BOTH, expand=1, side=LEFT)
        self.left = Frame(self.canvas)
        self.left.pack(fill=BOTH, expand=1)
        left_scroll = Scrollbar(self.left, orient=VERTICAL)
        left_scroll.pack(side=RIGHT, fill=Y)
        left_scroll.config(command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=left_scroll.set)
        for root, dirs, files in os.walk("C:\\", topdown=True):
            full = dirs + files
            for i in full:
                Button(self.left, text=i, bg="white", anchor="w", relief=SOLID, borderwidth=0).pack(fill=BOTH)
            break

        # BOTTOM-RIGHT SECTION …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
803
查看次数

标签 统计

python ×2

file-handling ×1

minecraft ×1

tkinter ×1