Crossin的编程教室

标题: 菜鸟求助,请大神帮忙解惑 [打印本页]

作者: mfx    时间: 2021-8-18 11:42
标题: 菜鸟求助,请大神帮忙解惑
如下代码,我定义了两个函数,想在函数kaishi中调用pathCallBack中获得的文件地址,请问怎么改
global srtPath
strPath = StringVar()
strResult = StringVar()
var= tk.StringVar()
def pathCallBack():
    filePath=filedialog.askopenfilename();
    filePath=filePath.replace("/","\\\\")   #通过replace函数替换绝对文件地址中的/来使文件可被程序读取 #注意:\\转义后为\,所以\\\\转义后为\\
    if(filePath != ''):
        strPath.set(filePath);
        m=(re.findall(r'\d+',filePath))
        N=m[len(m)-1]
        strResult.set(N)
def kaishi():
    data=open(strPath)
    f=data.readlines()
    data.close()
    print(f[0])

得到的错误如下:
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\hi\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "E:/python1/sp/chuangkou.py", line 33, in kaishi
    data=open(strPath)
TypeError: expected str, bytes or os.PathLike object, not StringVar



作者: crossin先生    时间: 2021-8-18 22:04
strPath.get()

参考:
https://www.cnblogs.com/hackpig/p/8206763.html
作者: mfx    时间: 2021-8-23 16:11
crossin先生 发表于 2021-8-18 22:04
strPath.get()

参考:

学会了,谢谢大神




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5