我正在为我的聊天程序创建一个额外的功能,它允许你通过键入一个特定的命令来注册,该命令使主机脚本保存你的对等名称和你在终端中插入的名称,它保存如下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并选择插孔并保存它。干杯!
答案 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(":")
)。您可以使用所有三个组件。