Найти - Пользователи
Полная версия: python, win7 проблема с обратными слешами
Начало » Python для новичков » python, win7 проблема с обратными слешами
1
IRON
Всем привет.
в программе используются пути, а поскольку символ обратного слеша служит для экранирования, то все пути собирал с использованием двойного слеша, как и написано в описании синтаксиса.
пример пути:
mypath='c:\\foo\\bar'
Писал и тестировал свою программу на win7 pro - всё замечательно работало. После чего собрал через py2exe и перенёс на другую машину, на которой предполагалось использование этой программы. Естественно протестировал работоспособность exe-шника на своей машине.
Вторая машина управляется win7 enterprise, запускаю там скрипт - пишет что не может найти путь… в итоге там все пути рисуются с двойным слешом, соответственно система их не понимает. Пробовал запускать и exe-шник и оригинальный файл .py через интерпретатор.
Пробовал добавлять перед значениями и r и/или u - результат не изменился.
mypath=r'c:\\foo\\bar'
В чём может быть причина такого поведения?
Как таковых ошибок программа не выдают, только исключение в котором говорится об отсутствии требуемого пути и указан этот путь.
truporez
Разумней не хардкодить слеши, а использовать os.path.sep:
>>> import os
>>> os.path.sep
'\\'
>>> os.path.join("foo","bar")
'foo\\bar'
>>>
Может это и поможет.
IRON
Спасибо за совет, но увы, в той системе это не работает, переписал все пути с использованием os.path.join - всё равно не находит путь из-за лишних слешей.
более того os.path.sep так же показывает
>>> import os
>>> os.path.sep
'\\'
>>> import locale
>>> print locale.getpreferredencoding()
cp1251
кодировка тоже вроде такая же как и в системе на которой писал и тестировал программу.
truporez
а у вас, случаем, русских символов нет в пути?
IRON
нет, только английские буквы и цифры
Soteric
Можно эксепшен увидеть?
IRON
Исключение было примерно такое:
Windows error code: 3

Проблема была в кривизне моих рук и отсутствием опыта работы с windows.
А если подробнее, то не правильно формировался один из путей и соответственно… Поведение windows мне не знакомо - это первая программа которую я пишу под эту ос, учился и писал программки исключительно в linux

Спасибо всем за помощь.
Soteric
То есть проблема решена?
IRON
Да
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB