在文本文件中寻找线和亚麻布

时间:2015-07-02 14:23:43

标签: python

我正在为我的聊天程序创建一个额外的功能,它允许你通过键入一个特定的命令来注册,该命令使主机脚本保存你的对等名称和你在终端中插入的名称,它保存如下57883:杰克在一个主机上的txt文件(names.txt)。如果有很多人注册了它将会是这样的

57883:jack 
57884:bob
57885:connor
57886:james
57887:zzhshsb93838
57887:ryan

当有人发送消息时我想知道他/她的名字是否已注册,如果是,请将名称发送给客户端,因此客户端不会看到对等名称,而是会看到发送消息的人的姓名。 为了做到这一点,我需要知道对等名是否在文件中,如果是的话;在文件中的哪个位置。到目前为止我已经得到了这个:

 peer = sock.getpeername()
 with open('names.txt', 'r') as d:
     lines = d.readlines()
     for peer in lines:

并且我不知道如何找出它被发现的哪一行,当我知道如何分离57883和ack并选择插孔并保存它。干杯!

1 个答案:

答案 0 :(得分:0)

with open("names.txt", "r") as f:
    for i, line in enumerate(f):
        numb, name = line.rstrip().split(":")
        print i, numb, name

您可以要求Python为文件的每一行提供行号行内容的元组(请参阅enumerate(f))。然后删除行终止符(请参阅line.rstrip())并将行拆分为由提供的字符分隔的部分(请参阅split(":"))。您可以使用所有三个组件。