我正在写一个寻找一些东西的不和谐机器人:
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)
答案 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"
请提供更多信息,以便我可以提供帮助。