Найти - Пользователи
Полная версия: Открываем один файл из другого.
Начало » Python для новичков » Открываем один файл из другого.
1
SadSa13
Вот в чем проблема: сейчас пишу графический интерфейс и из менюшки регистрации ( входа ) надо открыть уже основное окно.

Как бы так прописать, чтобы файл:

Во-первых, открывался.
Во-вторых, делал это без точной прописки.
Не
C\Program files\папка1\x.py
А как-нибудь
папка1\x.py

Чтобы без прописывания диска и т.п на любом пк.
PEHDOM
SadSa13
Как бы так прописать, чтобы файл:

Во-первых, открывался.
в каком плане открывался? выполнялся? для этого есть import или os.subprocess в зависимости что вам конкретно нужно.
SadSa13
Во-вторых, делал это без точной прописки.
Не
C\Program files\папка1\x.py
А как-нибудь
папка1\x.py
оно и так открываеться без точной прописки, любые неабсолтные пути, по умолчанию ищуться сначала от пути запущеного скрипта, а потом согласно переменным окружения.
гуглите
os.chdir()
os.fchdir()
os.getcwd()
а также os.path где куча приблуд для работы с путями: отнсительный \ абсолютный, обьединение \разделение путей, путь к директории, расширение файла и тд…
Rafik
Помещаем второй файл туда, где находится первый файл. Тогда подцепится без путей. Если таких “вторых” файлов много и необходимо их расположить в разных папках, то папки надо расположить по тому же пути, где находится “первый, стартовый” файл. Тогда обращение к “второму” файлу в подпапке “папка1” будет именно “папка1\x.py”. Чтобы не заморачиваться с разделителями путей, можно скомпоновать путь через os.path.join('папка1', ‘x.py’).
Кстати, можно получить из “первого” скрипта полный путь, откуда он запущен. Например, так:
 import sys
import os
otkuda_zapuschen, file_name_tekuschego_skripta = os.path.split(sys.argv[0])
# Теперь можем получить полный путь к "папка1\x.py" , 
# при условии: если папка1 находится там же, где этот скрипт
full_path_nachinaya_s_imeni_diska = os.path.join(otkuda_zapuschen, 'папка1', 'x.py')
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