python搜索函数不工作

2024-06-08 09:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些python代码的帮助。我有一个搜索函数,它会搜索文件中的字符串,如果找到了就重新运行,如果找不到就给出错误对话框。同样在错误对话框关闭后,给用户输入正确值的权限。我没有完整地编写代码,但基本上/tmp/ARNE/final1文件如下所示:

siu43543, RTWAURT
siu34544, RYAKCCD

如果用户输入名称,例如siu43543,它将重新返回RTWAURT,或者给出错误对话框,并等待正确的值。所以我的函数需要给出错误对话框,或者如果找到了值。你知道吗

def search(VAR,VAR1):
    global linese
    global linese1
    with open("/tmp/ARNE/final1", 'r') as file:
       for line in file:
              var=re.search(VAR, line)
              if var:
                  linese = line.split(',')[0]
              else:
                  tkMessageBox.showinfo("ERROR", "MISSING ELEMENT") 
                  return Exception 

              var11=re.search(VAR1, line)
              if var1:
                  linese1 = line.split(',')[1] 
              else: 
                  tkMessageBox.showinfo("ERROR", "MISSING PARENT")
                  return Exception      
    return linese
    return linese1 

try:
    search(line1,line1) 
except Exception:
    break 

Tags: 文件函数代码用户searchreturn错误line
2条回答

如果文件始终相同,则无需将打开文件命令放入函数中。python的强大功能是数组,因此我想提供将所有文件读入数组,然后在数组元素中搜索:

D1=[]
D2=[]
with open("/tmp/ARNE/final1", 'r') as file:
    for line in file:
        i,j=line.split(",")
        D1.append(i)
        D2.append(j)
def var_search(VAR,VAR1):
    if VAR in D1:
        ....
    if VAR1 in D2:
        ....

假设您的其余代码都是正确的,那么我认为行linese = line.split(',')[0]linese1 = line.split(',')[1]就是问题所在。当您需要return文件/tmp/ARNE/final1,后面的单词时,下面的操作应该完成。你知道吗

var的情况下:

linese = line.split()[1]
return linese #This will return `RTWAURT` if condition is satisfied

同样,对于var1

linese1 = line.split()[1]
return liense1 #This will return `RYAKCCD` if condition is satisfied 

以下是示例:

line = "siu43543, RTWAURT"

现在使用将split放在逗号(,)上的代码,取index 0的值,即line.split(',')[0],我们有:

>>> line.split(',')[0]
'siu43543'

这不是你想要的。你知道吗

现在使用我在任何空格字符上使用的split(默认行为),我们对index 1的值感兴趣,即line.split()[1]

>>> line.split()[1]
'RTWAURT'

正是你想要的return。你知道吗

相关问题 更多 >