python打印list对象_Python打印列表对象[特金特·斯特林瓦尔对象位于0x01FEAD50],但不是List*Tkinter中的项*...

我正在尝试创建一个GUI,它将能够使用MD5散列监视文件的完整性(更新日志的实际监视可以在命令提示符中)。在

我让最初的命令行程序运行得很好,但是在使用tkinter将其转换为基于GUI的版本时遇到了一个问题。在

我使用GUI创建一个文件列表,我想在'addFiles'函数中监视这些文件,但是当我试图将该列表传递给“checkForIntegrity”函数(或在该函数中用我的测试print(listOfFiles)打印该列表),我得到的只是[tkinter.StringVar object at 0x01FEAD50],但没有得到实际的列表。在

我到处寻找答案,并尝试在不同的位置使用listOfFiles.get()的各种实现,但没有成功。在

我不知道为什么我只得到实际的列表对象,但没有列出的项目,我的代码如下。在

提前谢谢大家。在

编辑:为了清楚起见,我的“GUI()”函数创建了一个窗口,询问用户要监视多少个文件,并将其传递给“addFiles()”函数,该函数允许输入用户指定的文件数量。我需要能够通过一个列表将他们在GUI中指定的文件传递给程序。再次感谢。在import hashlib

import time

from tkinter import *

def main():

GUI()

def GUI():

window = Tk()

window.title("Integrity Checker")

frame1 = Frame(window)

frame1.pack()

label1 = Label(frame1, text = "***Proof Of Concept Program That Monitors the Integriry of Files***")

label1.grid(row = 1, column = 1)

frame2 = Frame(window)

frame2.pack()

getNumberOfFiles = Label(frame2, text = "Insert Number of Files You Would Like to Check: ")

getNumberOfFiles.grid(row = 2, column = 1)

numberOfFiles = IntVar()

NumberOfFilesOption = Entry(frame2, textvariable = numberOfFiles)

NumberOfFilesOption.grid(row = 2, column = 2)

button = Button(frame2, text = "OK", command = lambda : addFiles(numberOfFiles))

button.grid(row = 2, column = 3)

window.mainloop()

def addFiles(numberOfFiles):

listOfFiles = []

window = Tk()

window.title("Add Files")

frame1 = Frame(window)

frame1.pack()

label1 = Label(frame1, text = "***Select The Files You Want To Monitor***")

label1.grid(row = 1, column = 1)

for i in range (numberOfFiles.get()):

AddFile = Label(frame1, text = "Add File:")

AddFile.grid(row = (i + 3), column = 1)

FileName = StringVar()

FileNameOption = Entry(frame1, textvariable = FileName)

FileNameOption.grid(row = (i + 3), column = 2)

button = Button(frame1, text = "OK", command = lambda : listOfFiles.append(FileName))

button.grid(row = (i + 3), column = 3)

button2 = Button(frame1, text = "Done", command = lambda : checkforINTEGRITY(numberOfFiles, listOfFiles))

button2.grid(row = (i + 4), column = 2)

window.mainloop()

def checkforINTEGRITY(numberOfFiles, listOfFiles):

#Number = numberOfFiles.get()

#listOfFiles = []

#count = 0

#numberOfFiles = eval(input("How many files would you like to monitor?: "))

#while count < Number:

# filename = input("Enter the name of the file you would like to check: ")

# count += 1

# listOfFiles.append(filename)

print(listOfFiles)

i = 0

originalList = []

for file in listOfFiles:

original_md5 = hashlib.md5(open(listOfFiles[i],'rb').read()).hexdigest()

originalList.append(original_md5)

i += 1

print(originalList)

while True:

i = 0

while i < Number:

md5_returned = hashlib.md5(open(listOfFiles[i],'rb').read()).hexdigest()

print(md5_returned)

if originalList[i] == md5_returned:

print("The file", listOfFiles[i], "has not changed")

else:

print("The file", listOfFiles[i], "has been modified!")

i += 1

time.sleep(5)

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值