python - python .append() 替换列表的所有项目
问题描述
我的 python 代码有问题,我创建了一个名为 FileList 的列表,我想追加项目(文件),但是当我追加时,列表的所有项目都被追加的项目替换。我的代码:
from dataclasses import dataclass
import tkinter
root = tkinter.Tk()
root.title("Ram Explorer")
root.geometry("1024x720")
root.minsize(1024, 720)
tklist = tkinter.Listbox(root, font=("Courrier", 25))
FilesList = []
CurrentDir = "/"
Dirs = []
@dataclass
class Meta:
size: int
type: str
name: str
ext: str
class File:
Data = ""
Metadata = Meta(0,None,None,None)
def Read():
return Data
def Write(NewData):
Data = str(NewData)
def Append(AppendData):
Data = Data + str(AppendData)
def Actualize(Dir):
CurrentDir = Dir
for i in range(len(FilesList)):
tklist.insert(i, ": " + str(FilesList[i].Metadata.name) + "." + str(FilesList[i].Metadata.ext))
print( str(i) + ", " + FilesList[i].Metadata.name)
tklist.pack(expand=1, fill=tkinter.BOTH)
def NewFile(Name, extention):
Newfile = File
Newfile.Metadata = Meta(0, "File", CurrentDir + str(Name), str(extention))
print(Newfile.Metadata.name)
FilesList.append(Newfile)
for i in range(len(FilesList)):
print( str(i) + ", " + FilesList[i].Metadata.name)
def NewDir(Name):
Newdir = File
Newdir.Metadata = Meta(0, "Directory", CurrentDir + str(Name), None)
FilesList.append(Newdir)
NewFile("Hello1", "txt")
NewFile("Hello2", "txt")
NewFile("Hello3", "txt")
NewFile("Hello4", "txt")
NewFile("Hello5", "txt")
Actualize("/")
root.mainloop()
我明白了:
/Hello1 0, /Hello1 /Hello2 0, /Hello2 1, /Hello2 /Hello3 0, /Hello3 1, /Hello3 2, /Hello3 /Hello4 0, /Hello4 1, /Hello4 2, /Hello4 3, /Hello4 /Hello5 0, /Hello5 1, /Hello5 2, /Hello5 3, /Hello5 4, /Hello5 0, /Hello5 1, /Hello5 2, /Hello5 3, /Hello5 4, /Hello5
解决方案
尝试使用:
Filelist.append("Any Value You Want")