py.user.nextНе слушайте. Это помоему неудачно сформулировано. Попробую разжевать. Есть такое понятие текущая директория. От питона это никак не зависит. Это свойство приложения которое вы используете. Консоль это тоже приложение (python exe Тоже). у каждой консоли есть текущая директория. Если данное приложение запускает другое приложение, то обычно текущая директория (и многие другие переменные среды) наследуются от вызывающего приложения. Вообще вызывающая программа может этому воспрепятствовать. В вызываемой программе можно по своему усмотрению изменить эту директорию. (Посмотреть можно выполнив getcwd() изменить командой chdir() если порождаете процесс то можно ему задать рабочую директорию принудительно например в питоне subprocess.check_call(….,cwd=“c:/xxx”) ). Аналогичные функции есть во всех языках программирования.
Не, файл ищется в текущем каталоге. А текущий каталог - это тот, из которого запущен скрипт
Резюме по вашей проблеме. Вы запускаете наверное скрипт из строчки cmd, А она принадлежность самого граф интерфейса windows, у которого текущая директория порождаемого процесса незнамо где. Если указать полный пусть к исполняемому файлу совпадает с местом расположения исполняемого файла т.е. python.exe, Которых в системе может быть установлено несколько штук. Если не указать полный путь то C:\Documents and Settings\user_name. За поведение всех версий форточек не поручусь, может несколько отличаться. Поэтому как вы ни тужтесь файл вы не увидите, если будете запускать приложение из командной строчки windows. И ваши потребители тоже его не увидят.
Помоему путь только один, вам надо переучиваться тому как запускать приложения.
Я считаю что правильный способ запуска приложений под windows - запуск из far, totalcommander, explorer или другого файлового мнеджера у которого текущая директория совпадает с тем что он показывает.
Принятый путь распространения - написать дистрибутив для программы pip. Там можно описать что для вашего скрипта требуются внешние файлы, и дистрибутив поместит их в недра питона, так что они будут доступны приложению (а приложение должно их грузить специальной командой).
Есть еще возможность узнать директорию в которой находится ваш скрипт, ну и например поменять текущую директорию на директорию расположения скрипта. Этот путь не рекомендуется. Скоро вам захочется применять ваш код к разым папкам :), да и ваше приложение скоро может расползтись по разным папкам, станет непонятно где файл искать.
p.s.
Разжевывалось уже тысячу раз. Переходите на unix у его пользователей такие вопросы не возникали ни разу. :)
Со временем я еще лучше пойму, что вы написали) Но и сейчас я в целом понял всё) Пока буду работать с cmd и оставлю этот момент, дальше - больше)