Вы должны изменить это на:
with open('P:/my/directory/sheet.csv', 'a', newline='') as csvfile:
Обратите внимание на изменение с \
на /
Строки Python рассматривают обратную косую черту как экранирующий символ. У вас есть много вариантов:
заменить \
на /
использование \\
использовать необработанные литералы, т.е.
использование os.path.sep
использование os.path.join
и т.д ..
В вашем случае я бы сказал, что проще всего просто заменить \
на /
в качестве примера, который я вам дал.
В качестве примера попробуйте следующее:
print("mydir\nothing\table.csv")
Выход:
P:\mydir
othing able
и вы увидите, что результат не соответствует ожиданиям, поскольку \n
и \t
были преобразованы в специальные символы:)
Как правило, избегайте использования обратной косой черты \
в строках, если вы не уверены, что происходит. Каталоги, разделенные /
, будут обработаны правильно.