У меня есть программа, которая пишет в определенные файлы, где имя файла генерируется на лету и может содержать специальные символы в произвольном порядке.
Всякий раз, когда в этих специальных символах есть /
, код считает его разделителем пути ОС для linux.
Как мне избежать этого динамически?
Демонстрация того, с чем я сталкиваюсь:
import random
special_chars = "$^&%*^(&/"
selected = random.choice(special_chars)
#selected = "/"
with open(__file__ + "%s.txt" % selected) as f:
f.write("Hello")
Работает очень хорошо, когда это любой другой символ, кроме /
, но когда вы выбрали /
:
Ошибка:
Traceback (most recent call last):
File "./a.py", line 7, in <module>
with open(__file__ + "%s.txt" % selected, 'w') as f:
IOError: [Errno 20] Not a directory: './a.py/.txt'
Python 2.7 только пожалуйста.