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

How to see if a string is in a text file (kinda) ? python

我正在编写一个正在寻找一些东西的 discord 机器人:

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

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)

我能理解你最后一段的问题。 您需要更改的是:

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"    

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