获取字符串的最后一个字符无效

2024-06-16 13:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

为我的机器人提供一个命令,从文本文件中随机选择一行并将其分配给变量。我在每一行的末尾都有一个数字(这里是我的行)。代码应该做的是将行的最后一个字符(现在是分配给变量的字符串)分配给变量

问题是,它就是不能做到这一点。嗯,它只执行文本文件中的最后一行。不管random.choice()函数得到哪一行,它总是只对文本文件的最后一行起作用

@commands.command()
async def slap_t(self, ctx, member : discord.Member):

    with open('docs/slap_t.txt') as f:

        slap_responses = f.readlines()

        f.close()

        slap= random.choice(slap_responses)

        gif_num = slap[-1]

        print(f"response: {slap}")
        print(f"gif num = {gif_num}")

Tags: 字符串代码命令机器人数字randomresponses字符
1条回答
网友
1楼 · 发布于 2024-06-16 13:35:31

这是因为slap_responses中的其他行在末尾包括\n(换行符)。请用slap_responses = f.read().splitlines()而不是slap_responses = f.readlines()重试。这将从每一行中剥离尾随的换行符,并将这些行存储在列表slap_responses

readlines()不会从每一行中删除\n。因此,在代码中slap[-1]将返回这个换行符,这可能不是您想要的

相关问题 更多 >