- Как назначить питону место сохранения файлов
- Самый простой вариант — не самый верный!
- Указываем путь к файлу правильно!
- А почему не os.path.join?
- Как сохранять текстовые файлы Python в определённую папку?
- Всё ещё ищете ответ? Посмотрите другие вопросы с метками python или задайте свой вопрос.
- Путь сохранения по умолчанию для Python IDLE?
- 9 ответов
Как назначить питону место сохранения файлов
Для решения задач, связанных с редактированием или чтением файла, необходимо сообщить интерпретатору Python имя нужного нам файла, а также адрес, по которому этот файл располагается. Существуют разные способы указания пути к файлу в Python: от самого простого, до самого правильного. Давайте выясним, чем эти варианты отличаются и почему простой вариант не годится на роль лучшего!
Самый простой вариант — не самый верный!
Внимание! У этого способа обнаружен недостаток!
Самый простой вариант задания пути выглядит как последовательность директорий, в которых находится файл, с именем самого файла, разделенные знаками слеша:
Пример относительного пути:
Где вместо «Files» и «info.txt» Вы напишите названия ваших директорий и имя вашего файла соответственно.
Пример абсолютного пути:
Где вместо «C:\Python\pythonw.exe\Files\info.txt», «home/my_comp/Files/» и «info.txt» Вы напишите названия ваших директорий и имя вашего файла соответственно.
Этот вариант рабочий, однако, один существенный недостаток лишил его внимания разработчиков. Проблема заключается в том, что заданные таким способом пути адаптированы только к одному виду операционной системы: к Линукс, либо к Windows, так как в Windows используются обратные слеши «\», а в Линукс — обычные «/». Из-за этого скрипт, показывавший отличные результаты в Windows, начнет жаловаться на отсутствие файлов по прописанному пути в Linux, и наоборот. А с абсолютным путем вообще все сложно: никакого диска «C:» в Линуксе нет. Скрипт опять будет ругаться! Что же делать? Правильно указать путь к файлу!
Указываем путь к файлу правильно!
Внимание! Годный вариант!
Python — умный змей, поэтому в его арсенале, начиная с 3.4 версии появился модуль pathlib, который позволяет вытворять самые приятные вещи с путями к файлу, стоит только импортировать его класс Path:
Кстати, если у вас не установлен модуль pathlib, это легко исправить с помощью команды:
Задаем относительный путь с помощью Path!
После того, как класс импортирован, мы получаем власть над слешами! Теперь вопрос о прямых и обратных слешах в разных операционных системах ложится на плечи Path. Используя Path, вы можете корректно задать относительный путь, который будет работать в разных системах.
Например, в случае расположения файлов, как на представленном изображении, относительный путь, определяемый в скрипте «main_script.py», сформируется автоматически из перечисленных в скобках составных частей. Pathlib инициализирует новый объект класса Path, содержимым которого станет сформированный для Вашей системы относительный путь (в Windows части пути будут разделены обратными слешами, в Linux — обычными):
Задаем абсолютный путь с помощью Path
- cwd() — возвращает путь к рабочей директории
- home() — возвращает путь к домашней директории
Полученную строку, содержащую путь к рабочей или домашней директории, объединим с недостающими участками пути при инициализации объекта класса Path :
Пример 1: с использованием функции cwd():
В данном случае путь к директории имеет вид: dir_path = «/home/my_comp/python», а полный путь к файлу «docs.txt» будет иметь вид: «/home/my_comp/python/files/info/docs.txt».
Представленный выше код можно оптимизировать и записать в одну строку:
Пример2: с использованием функции home():
В данном случае путь к директории имеет вид: dir_path = «/home/my_comp», а полный путь к файлу ‘docs.txt’ будет иметь вид: «/home/my_comp/files/info/docs.txt».
Сократим представленный выше код:
А почему не os.path.join?
А что же не так с заслуженным мастером по объединению путей os.path.join() и хранителем секретной информации о расположении рабочей директории os.getcwd()? Действительно, эти замечательные функции в составе модуля os довольно долго служили разработчикам Python верой и правдой. Их вполне можно использовать для определения пути к файлу. Однако, большим недостатком функции join() является невозможность принять для объединения более двух аргументов. Таким образом, чтобы присоединить к рабочей директории путь вида: ‘files/info/docs.txt’, приходится трижды обращаться к функции join(), не забывая при этом искусно жонглировать скобками. Выглядит это примерно так:
Казалось бы, ничего сложного. Однако, зачем громоздить лишние скобки, когда есть более лаконичный вариант с использованием модуля pathlib?
Подведем итог: начиная с версии Python 3.4, для задания пути к файлу рекомендуется использовать модуль pathlib с классом Path. Определить путь к рабочей директории можно с помощью функции cwd(), а путь к домашней директории подскажет функция home().
Как сохранять текстовые файлы Python в определённую папку?
Начал изучать Python по книге Abyteofpython там была задача сделать телефонную книгу, решил дополнить её так, что бы он сохранял текстовый документ в определённую папку. Может какие библиотеки есть для этого?
Вся магия, просто указываете полный путь до папки.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками python или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Путь сохранения по умолчанию для Python IDLE?
кто-нибудь знает, где и как установить путь/каталог по умолчанию для сохранения скриптов python перед запуском?
на Mac он хочет сохранить их на верхнем уровне
/Documents directory . Я хотел бы указать реальное местоположение. Есть идеи?
9 ответов
на OS X, если вы запустите IDLE.app (двойным щелчком мыши или с помощью open(1) , например), каталог по умолчанию подключается к
/Documents . Если вы хотите изменить значение по умолчанию навсегда, вам нужно отредактировать файл idlemain.py в режиме ожидания.App application bundle; в зависимости от того, какой Python(ы) вы установили, он, вероятно, будет в одном из:
С другой стороны, если вы запускаете IDLE из командной строки, например, с:
IDLE будет использовать этот текущий каталог по умолчанию.
похоже, вы можете простоя в каталог, который вы хотите, если вы запустите любой модуль из этого каталога.
Я ранее пытался открыть idlemain.py через браузер путей. Я смог открыть и отредактировать файл, но казалось, что я не смог сохранить свои изменения.
Я просто рад слышать, что у других людей есть эта проблема. Я просто думала, что веду себя глупо.
Я на самом деле только что обнаружил самый простой ответ, если вы используете ссылку ярлыка с надписью «IDLE (Python GUI)». Это в Windows Vista, поэтому я не знаю, будет ли он работать в других ОС.
1) Щелкните правой кнопкой «свойства».
3) В «В», укажите путь к файлу (например, «C:\Users. «).
позвольте мне знать, если это работает!
Если вы открываете модуль, который устанавливает рабочий каталог по умолчанию.
File — > Open, чтобы открыть файл. И установите текущий рабочий каталог.
в Windows (Vista, по крайней мере, то, что я смотрю здесь), ярлыки на рабочем столе имеют поле «Пуск В», где вы можете установить каталог, используемый в качестве текущего рабочего каталога при запуске программы. Изменение этого работает для меня. Что-нибудь подобное на Mac? (Запуск в нужном каталоге из командной строки тоже работает.)
откройте новое окно finder, затем перейдите к приложениям. Найдите приложение Python. (Для моего mac это Python 3.5)
дважды щелкните по нему. Щелкните правой кнопкой мыши на значке IDLE, покажите содержимое пакета. Затем перейдите в папку contents, затем resources.
(Примечание: Вы должны быть администратором или иметь пароль администратора для ниже)
право нажмите на кнопку idlemain.py получить информацию.
прокрутите весь путь вниз. Убедитесь, что на вкладке » общий доступ и разрешения «ваше»имя» (Me) находится на нем с привилегией «чтение и запись». Если не нажать на символ блокировки и разблокировать его. Затем добавьте / отредактируйте себя, чтобы иметь привилегию чтения и записи.
наконец,согласно инструкциям Неда Дейли, отредактируйте строку:
с желаемым путем, а затем сохраните изменения.
при перезапуске Python IDLE вы должны найти, что по умолчанию Сохранить как путь, который вы указали.
Если вы найдете каталог idlelib в вашей установке Python, у него будет несколько файлов с .расширение def. config-main.def имеет инструкции о том, куда поместить пользовательские файлы конфигурации. Однако, просматривая их, я не нашел настраиваемых путей (ваша установка может отличаться). Похоже, вам может понадобиться взломать код редактора, чтобы изменить его.
в моем случае каталог по умолчанию установлен в каталог, из которого я запустил IDLE. Например, если я запустил IDLE из каталога с именем » tmp » в моем домашнем каталоге, путь сохранения по умолчанию установлен в
/tmp . Так что начните свой простоя так:
Я использую windows 7 и, перейдя в Start — > IDLE (Python 3.6 32-бит)
нажмите на свойства, а затем на вкладке Ярлык перейдите к Начните и введите желаемый путь работал для меня обратите внимание, если простоя открыт и работает в то время как вы делаете это, вам придется закрыть его и перезапустить его для этого работать