Ошибка при попытке создать файл по пути, содержащему круглые скобки с Python - PullRequest
0 голосов
/ 03 августа 2020

Может ли кто-нибудь определить, почему это не удается?

import pathlib
from shlex import quote

path = 'testdir(abc)/subdir(123)'
filename = 'test'
content = \
"""hello
world
"""
pathlib.Path(path).mkdir(mode=0o770, parents=True, exist_ok=True)
md5_filename = quote(str(pathlib.Path(path) / (filename + '.txt')))
with open(md5_filename, 'w') as f:
    f.write(content)

Я получаю эту трассировку

(tools) $ python test_filemake.py 
Traceback (most recent call last):
  File "test_filemake.py", line 13, in <module>
    with open(md5_filename, 'w') as f:
FileNotFoundError: [Errno 2] No such file or directory: "'testdir(abc)/subdir(123)/test.txt'"

Думаю, я недостаточно хорошо понимаю пути posix, чтобы понять, что происходит на. Если я уберу скобки из имен каталогов в пути, все будет нормально. shlex.quote () добавляет дополнительный слой двойных кавычек, что, кажется, ломает вещи.

...