如何查看字符串是否在文本文件中(有点)?蟒

时间:2017-12-11 23:54:46

标签: python discord

我正在写一个寻找一些东西的不和谐机器人:

1)它检查发送命令名称的用户是否已经在文件中,发送该消息的用户是"成员"变量

2)如果用户不在文件中,则应将其名称添加到文件中。

3)如果用户在文件中,它会向他们发送一条消息,说他们不能两次添加他们的名字。

下面的代码我尝试了不同的变体,但仍然无法得到它。打印(current_name)就在那里,所以我可以看到代码是否循环遍历文本文件的所有行,并且只有当我尝试读取文件的行并查看成员是否不在其中时,它才不会将所有名称打印到控制台。如果您需要更多代码请lmk。

            source_file_name = 'tracker.txt'
            temporary_file_name = 'tracker_temp.txt'
            with open(source_file_name, mode='r') as source_file:
                with open(temporary_file_name, mode='w') as temporary_file:
                    for current_line in source_file:
                        line_splitted = current_line.split()
                        current_name = line_splitted[0]
                        print(current_name)

                        if str(member) not in source_file.readlines():
                            output_line = str(member) + "\n"
                            temporary_file.write(output_line)

                        elif current_name == str(member):
                            output_line = str(member) + "\n"
                            mporary_file.write(output_line)
                            await client.send_message(message.channel, "You cannot redeem another role while your other role is still active!")

                        else:
                            output_line = current_name + "\n"
                            temporary_file.write(output_line)

            os.replace(temporary_file_name, source_file_name)

1 个答案:

答案 0 :(得分:0)

我能够在最后一段中理解你的问题。 你需要改变的是:

with open(source_file_name, mode='r') as source_file:
    with open(temporary_file_name, mode='w') as temporary_file:
        content = source_file.readlines() # gives you a list of all the lines
        for line in content:
            current_name = line.split(' ')[0]
            print current_name

这将导致:

# result of source_file.readlines():
# content = ['Name1 asd fgh', 'Name2 qwe rty']
# Console: 
# "Name1"
# "Name2"    

请提供更多信息,以便我可以提供帮助。