У меня есть несколько скриптов Python, которые были написаны кем-то еще в Windows. Эти сценарии используют двойную обратную косую черту в качестве разделителя пути, но при запуске в Ubuntu они не работают из-за этого. Я могу изменить все \ на /, и сценарии будут работать, но есть много сценариев и много усилий, чтобы изменить каждый \ на /
. Поэтому мой вопрос: возможно ли добавить \ в качестве разделителя пути в Ubuntu или только в Bash, чтобы мне не приходилось изменять эти скрипты?
Пример кода:
# Append Common directory to the Python search path
sys.path.append('..\\..\\..' + os.sep + 'Common')
Я не могу ответить на ваш вопрос, но очень легко изменить \ на / во всех сценариях, как это:
find <root_of_scripts> -name "*.py" -exec sed -i 's/\\\\/\//g' {} \;
(Просто попробуйте сначала скопировать ваши файлы!)
В Linux имена файлов могут содержать любые символов, кроме /
(так как это разделитель пути) и байт NUL (терминатор строки, \0
). Это означает, что \
является допустимым символом в имени файла, а также символами новой строки, вкладками, escape-последовательностями терминала, непечатаемыми символами ... поэтому нет, вы не можете временно использовать \
в качестве разделителя пути.
Windows не так либеральна и имеет больший набор символов, недопустимых в именах файлов, и /
является одним из тех символов, которые не допускаются. По этой причине python также рассмотрит /
разделитель пути в Windows, поэтому изменение этого \\
на /
должно заставить скрипт работать как в Windows, так и в Ubuntu. Тем не менее, правильный способ объединения путей в python - это использование функции os.path.join.
Я рекомендую просмотреть сценарии и вручную исправить весь непереносимый код.