Я думаю, что я неправильно добавляю путь к папке с изображениями в логике моего бота discord.py - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь заставить бота ответить случайно выбранным изображением из папки на моем компьютере:

if message.content == "look at this":

imgList = os.listdir("C:\Users\Alien\Desktop\BOTS\TAL\IMAGES")

imgString = random.choice(imgList)

path = "C:\Users\Alien\Desktop\BOTS\TAL\IMAGES" + imgString

await client.send_file(message.channel, path)

Это часть более длинного файла .py с большим количеством различного кода, который всепрекрасно работает с необходимыми вступлениями / выходами и т. д.

До того, как я добавил это, все работало нормально, но теперь, когда я пытаюсь запустить его, печатает:

C:\Users\Alien\PycharmProjects\tal-1.0\venv\Scripts\python.exe C:/Users/Alien/PycharmProjects/tal-1.0/tal-1.0.py
  File "C:/Users/Alien/PycharmProjects/tal-1.0/tal-1.0.py", line 27
    imgList = os.listdir("C:\Users\Alien\Desktop\BOTS\TAL\IMAGES")
                        ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Process finished with exit code 1

1 Ответ

0 голосов
/ 20 октября 2018
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

Это говорит вам об ошибке escape-символа в позиции 2-3, который является символом \U

\ - это escape-символ для строк.Это позволяет вам включать такие элементы, как одинарная кавычка, внутри строки одинарной кавычки: var = 'you\'re' сохранит одинарную кавычку без закрытия строки.

Вы используете escape-символ \ в вашей строке (, что вы делаете, потому что это часть пути вашей файловой системы).Таким образом, он пытается декодировать следующий символ, U, который он не знает, как это сделать, поскольку его не нужно экранировать.

Вместо этого вам нужно убежать от escape-персонажа.Вам нужно будет написать \\ в каждом месте, где у вас есть \.

Вашему решению нужно что-то подобное на всех ваших путях:

imgList = os.listdir("C:\\Users\\Alien\\Desktop\\BOTS\\TAL\\IMAGES")
...