我找不到一种可以在 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) 我尝试遵循一些教程来了解如何让画布滚动,但它最终总是呈灰色。我尝试在画布上添加一个滚动区域,但我不理解它,只知道它没有变灰,但仍然什么也没做。
我的代码(运行后将其调整为垂直较短,但它仍然呈灰色):
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)