I have a discord bot running on a python script, and its token is stored in a .txt
file. If I read from the file using:
with open('Stored Discord Token.txt') as storedToken:
TOKEN = storedToken.readlines()
I can get the discord bot token. The problem is that the discord bot token looks like this:
[' <token> ']
This causes an error when trying to run the script, and the bot fails to connect, as it is an invalid token:
discord.errors.LoginFailure: Improper token has been passed.
How do I remove the square brackets, '
s and spaces from the list containing the token?
TL;DR: How to remove [
, ]
, '
, and spaces
from a single item list?
CodePudding user response:
First of all, read()
will just return the whole file contents as a string, so you could use TOKEN = storedToken.read()
.
Lists in Python can be accessed using [index]
so to access the first line in the file you can do TOKEN = storedToken.readlines()[0]
. If say you wanted to access the n
th line you could do storedToken.readlines()[n]
. Where n
is an int
.
CodePudding user response:
As @Brian suggested, slicing out the substring solves the problem. If we simply add one line of code, like this:
with open('Stored Discord Token.txt') as file:
fileContents = file.readlines()
TOKEN = fileContents[-1]
we remove the [
, ]
, '
, and
characters, and can now successfully pass that string as the token.
CodePudding user response:
Try this one:
import re
a=[' <token123> ']
re.sub(r'[^a-zA-Z0-9]', '', str(a))