我有這個函數(shù)給我寫一個文件:from tkinter import *import osimport tkinter as tk def var_states(): text_file = open("logfile.txt", "a") text_file.write("USER: %s, Variable1: %d\n" % (os.getlogin(),var1.get())) text_file.close()var1 = IntVar()tk.Checkbutton(right_frame, text="sample text", variable=var1).grid(column = 1, row = 1, sticky = W)如果我打開 .txt 文件,輸出為: USER: WindowsUser, sample text我這里也有這個功能:def func(value): p = Path(value) print(p)通過單擊按鈕獲取值:popupMenu = tk.OptionMenu(left_frame, tkvar, *choices,command = func)這只是 tkinter 中的一個下拉菜單,它向我顯示了一個目錄列表。我的問題是,如何獲得func()用于var_states將值寫入文件的方法?這是我嘗試過的:def var_states(): text_file = open("logfile.txt", "a") text_file.write("USER: %s, Variable1: %d, Func_return: %s \n" % (os.getlogin(), var1.get(), func.get())) text_file.close()
2 回答

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗 獲得超5個贊
您必須進(jìn)行一些小的更改,如下所示:
第一的
p = None
def func(value):
global p
p = Path(value)
print('req:', p)
第二
def var_states():
text_file = open("logfile.txt", "a")
# code changed here
text_file.write("USER: %s, Variable1: %d, Func_return: %s \n" % (os.getlogin(), var1.get(), p))
text_file.close()
我運(yùn)行了你的程序,在這樣做之后它工作正常。

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗 獲得超8個贊
您用于存儲路徑的變量是p
,如果您想在var_states
函數(shù)中使用它,您應(yīng)該更改該行:
text_file.write("USER: %s, Variable1: %d, Func_return: %s \n" % (os.getlogin(), var1.get(), func.get()))
至
text_file.write("USER: %s, Variable1: %d, Func_return: %s \n" % (os.getlogin(), var1.get(), p))
在使用之前檢查您是否正在調(diào)用該函數(shù)p
,否則您將遇到NameError
異常。
添加回答
舉報
0/150
提交
取消