У меня есть скрипт Python, который генерирует кучу файлов с разными именами Unicode для тестирования.Он отлично работает в среде OS X и Linux.В Windows (и, что более важно, AppVeyor) он не может создать некоторые файлы, жалуясь на неверное имя файла.Вот очень минимальная версия:
with open("\x01", "w") as f:
f.write("foo")
Я получаю ошибку:
Traceback (most recent call last):
File "genTestRes.py", line 51, in <module>
os.mkdir(os.path.join(TESTDIR, data))
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'test-res\\\x01'
Я могу воспроизвести ошибку CI локально на компьютере Windows с минимальным сценарием выше, наNTFS диск, с Python 2.7.Ничто из этого не помогло:
- добавление
# -*- coding: utf-8 -*-
в начале - выполнение
chcp 65001
перед командой - с использованием префикса Unicode (
u"\x01"
)
Согласно Википедии , NTFS должна поддерживать как минимум
В пространстве имен Win32: любая единица кода UTF-16 (без учета регистра), кроме /:* "? <> | а также NUL
Что может быть причиной этого? U+0001
должно быть прекрасно, если не печатается, с кодом. Википедия здесь просто неправильна?