我在我的客户.txt如何使用python创建一个搜索函数以打印出整个客户信息

2024-10-04 01:29:20 发布

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

我的名单上有我的嗨客户.txt文件:

[1, 'Amin Milani Fard', 'Columbia College', 778]
[33, 'Ali Sulemanji', 'Langara College', 4324442211]
[32, 'Ali Sulemanji', 'Langara College', 4324442211]
[325, 'Ali Sulemanji', 'Langara College', 4324442211]
[2, 'Yuvin Ng','Dougles College',77839922003]
[3, 'Ali Sulemanji', 'Langara College', 4324442211]

我的工作是创建一个可以跟踪客户姓名的搜索功能。 例如。 输入客户姓名:Yuvin Ng 它将从Yuvin Ng的行返回整个列表

我怎么能做到呢?使用python。在

^{pr2}$

我卡住了。。。请帮助a.s.a.p.谢谢你。。在


Tags: 文件txt客户aling姓名名单college
3条回答

想想看pickle module。您的代码将如下所示:

data = [[1, 'Amin Milani Fard', 'Columbia College', 778],
[33, 'Ali Sulemanji', 'Langara College', 4324442211],
[32, 'Ali Sulemanji', 'Langara College', 4324442211],
[325, 'Ali Sulemanji', 'Langara College', 4324442211],
[2, 'Yuvin Ng','Dougles College',77839922003],
[3, 'Ali Sulemanji', 'Langara College', 4324442211]]

import pickle

pickle.dump(data, open('c:\\file.txt','w'))

# than you can retrieve data the following way 

data = pickle.load(open('c:\\file.txt','r'))

# And now it is very easy to find data you need.
data[1]
>>> [33, 'Ali Sulemanji', 'Langara College', 4324442211]

# OR
for x in data:
   if 'Ali Sulemanji' in x:# or look for any other property/ies
        print x

为什么不使用数据库而不是平面文件来存储信息?例如,如果您想使用一个名为“users”的数据库,可以使用类似

import _mysql
conn = _mysql.connect('localhost','root','','users')
with open(filename) as fp:
    for line in fp:
         then fill your query with the information like: 
         "..." % dict(zip([id,name,college,number],eval(line)))

以后的查询可以用like来完成

^{pr2}$

一种简单的方法是使用in遍历文件中的行以检查匹配项,如果找到匹配项,则使用eval将该行作为列表返回。在

def search(file_name, name):
    with open(file_name) as f:
        for line in f:
            if name in line:
                return eval(line) 
    return []

>>> search('customer.txt', 'Yuvin Ng')
<<< [2, 'Yuvin Ng', 'Dougles College', 77839922003]

相关问题 更多 >