我已经制作了一个带有一个接口的python程序。接收文件名和数值数据。当我创建操作文件名,目录等的方法时,它会返回错误。
我相信错误是对象方向。我该如何解决?
我已经将程序分为两个部分:一个用于解决我的问题(没有对象取向),另一个要接收用户数据。
错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:Python27liblib-tkTkinter.py", line 1541, in __call__
return self.func(*args)
File "teste.py", line 60, in verificaSenha
if (Procura_nome(nome_arq) == 1):
NameError: global name 'Procura_nome' is not defined
完整的代码:https://pastebin.com/br6jacur
有问题的方法:
def Procura_nome(nome_arq):
dir = Percorre_dir_entrada()
arquivo = dir + dir[2] + nome_arq + + ".shp"
os.path.isfile(nome_arq)
try:
with open(arquivo, 'r') as f:
return 1
except IOError:
return 0
所有python方法类都必须具有自我参数为第一个参数,此参数也引用了您的类的实例,当您使用类中的类方法和属性时,您应该用自我引用它们。
您可能需要在文件中的所有方法类中添加自我。
您还需要在第三行上删除一个" "。
def Procura_nome(self, nome_arq):
dir = self.Percorre_dir_entrada()
arquivo = dir + dir[2] + nome_arq + ".shp"
os.path.isfile(nome_arq)
try:
with open(arquivo, 'r') as f:
return 1
except IOError:
return 0
您的percorre_dir_entrada和percorre_dir_saida函数在不同的文件上做完全相同的事情,您应该考虑执行一个通用版本,这些版本以param的形式以param的形式使用:
def Percorre_dir(self, file_name):
achou = 0
dirlist = os.listdir(".")
for i in dirlist:
filename = os.path.abspath(i)
if((filename.find(file_name)) != -1):
achou = 1
return filename
if(achou == 0):
return 0
然后称其为:
Percorre_dir("Saida")
Percorre_dir("Entrada")