В Python, какие команды я могу использовать для поиска:
- текущий каталог (где я находился в терминале при запуске Python script) и
- Где выполняется файл, который я выполняю?
В Python, какие команды я могу использовать для поиска:
Чтобы получить полный путь к каталогу, в который содержится файл Python, напишите его в этом файле:
import os 
dir_path = os.path.dirname(os.path.realpath(__file__))
(Обратите внимание, что приведенное выше заклинание не будет работать, если вы уже использовали os.chdir() для изменения текущего рабочего каталога, поскольку значение константы __file__ относится к текущему рабочему каталогу и не изменяется на вызов os.chdir().)
Чтобы получить текущий рабочий каталог, используйте
import os
cwd = os.getcwd()
Ссылки на документацию для модулей, констант и функций, используемых выше:
os и os.path.__file__os.path.realpath(path) (возвращает "канонический путь указанного имени файла, исключая любые символические ссылки, встречающиеся в пути" )os.path.dirname(path) (возвращает "имя каталога пути path" )os.getcwd() (возвращает "строку, представляющую текущий рабочий каталог" )os.chdir(path) ( "смените текущий рабочий каталог на path" ) Текущий рабочий каталог:  os.getcwd()
 А  \_\_file\_\_ attribute поможет вам узнать, где находится исполняемый файл. Этот пост SO объясняет все: Как мне получить путь к текущему исполняемому файлу в Python?
Вы можете найти это полезным в качестве ссылки:
import os
print("Path at terminal when executing this file")
print(os.getcwd() + "\n")
print("This file path, relative to os.getcwd()")
print(__file__ + "\n")
print("This file full path (following symlinks)")
full_path = os.path.realpath(__file__)
print(full_path + "\n")
print("This file directory and name")
path, filename = os.path.split(full_path)
print(path + ' --> ' + filename + "\n")
print("This file directory only")
print(os.path.dirname(full_path))
1.Чтобы получить полный путь к текущему каталогу
    >>import os
    >>print os.getcwd()
o/p: "C:\Users\admin\myfolder"
1.Чтобы получить только текущее имя папки каталога
    >>import os
    >>str1=os.getcwd()
    >>str2=str1.split('\\')
    >>n=len(str2)
    >>print str2[n-1]
о/р: "MyFolder"
Если вы пытаетесь найти текущий каталог файла, в котором вы сейчас находитесь:
Агностический способ ОС:
dirname, filename = os.path.split(os.path.abspath(__file__))
  pathlib, введенный в Python 3.4 (PEP 428 - Модуль pathlib - пути объектно-ориентированной файловой системы), значительно улучшает работу, связанную с трассировкой.
$ pwd
/home/skovorodkin/stack
$ tree
.
└── scripts
    ├── 1.py
    └── 2.py
 Чтобы получить текущую рабочую директорию, используйте  Path.cwd():
from pathlib import Path
print(Path.cwd())  # /home/skovorodkin/stack
 Чтобы получить абсолютный путь к вашему файлу скрипта, используйте  Path.resolve():
print(Path(__file__).resolve())  # /home/skovorodkin/stack/scripts/1.py
 И чтобы получить путь к каталогу, где находится ваш скрипт, откройте его  .parent (рекомендуется вызвать .resolve() до .parent):
print(Path(__file__).resolve().parent)  # /home/skovorodkin/stack/scripts
 Помните, что __file__ не является надежным в некоторых ситуациях: как мне получить путь к текущему исполняемому файлу в Python? ,
 Обратите внимание, что Path.cwd(), Path.resolve() и другие методы Path возвращают объекты пути ( PosixPath в моем случае), а не строки. В Python 3.4 и 3.5 это вызвало некоторую боль, поскольку  open встроенная функция могла работать только со строковыми или байтовыми объектами и не поддерживала объекты Path, поэтому вам пришлось преобразовывать объекты Path в строки или использовать  Path.open() но последний вариант потребовал от вас изменить старый код:
$ cat scripts/2.py
from pathlib import Path
p = Path(__file__).resolve()
with p.open() as f: pass
with open(str(p)) as f: pass
with open(p) as f: pass
print('OK')
$ python3.5 scripts/2.py
Traceback (most recent call last):
  File "scripts/2.py", line 11, in <module>
    with open(p) as f:
TypeError: invalid file: PosixPath('/home/skovorodkin/stack/scripts/2.py')
 Как вы видите, open(p) не работает с Python 3.5.
 PEP 519 - Добавление протокола файловой системы пути, реализованный в Python 3.6, добавлена поддержка  PathLike объектов  open функцию, так что теперь вы можете пройти Path объекты для open функции напрямую:
$ python3.6 scripts/2.py
OK
Если вы используете Python 3.4, есть новый модуль более высокого уровня pathlib, который позволяет вам удобно вызвать pathlib.Path.cwd(), чтобы получить объект Path, представляющий ваш текущий рабочий каталог, а также многие другие новые особенности.
Дополнительную информацию об этом новом API можно найти здесь.
Немного поздно для вечеринки, но я думаю, что самый краткий способ найти только имя вашего текущего контекста выполнения будет
current_folder_path, current_folder_name = os.path.split(os.getcwd())
Ответ на # 1:
Если вы хотите использовать текущий каталог, сделайте следующее:
import os
os.getcwd()
Если вы хотите только любое имя папки и у вас есть путь к этой папке, сделайте следующее:
def get_folder_name(folder):
    '''
    Returns the folder name, given a full folder path
    '''
    return folder.split(os.sep)[-1]
Ответ на # 2:
import os
print os.path.abspath(__file__)
Если вы ищете местоположение текущего выполненного script, вы можете использовать sys.argv[0] для получения полного пути.
Чтобы получить полный путь к текущему каталогу: 
os.path.realpath( '')
Pathlib можно использовать таким образом, чтобы получить каталог, содержащий текущий script:
import pathlib
filepath = pathlib.Path(__file__).resolve().parent
Чтобы увидеть текущий тип рабочего каталога следующего сценария:
import os
current_working_directory = os.getcwd()
Получить ваш рабочий каталог в Python. Вы можете использовать следующий код:
import os
cwd = os.getcwd() #to get current working directory
print(cwd)
В вопросе 1 используйте os.getcwd() # get working dir и os.chdir(r'D:\Steam\steamapps\common') # set working dir
Я рекомендую использовать sys.argv[0] для вопроса 2, потому что sys.argv является неизменным и поэтому всегда возвращает текущий файл (путь объекта объекта) и не влияет на os.chdir(). Также вы можете сделать следующее:
import os
this_py_file = os.path.realpath(__file__)
# vvv Below comes your code vvv #
 но этот фрагмент и sys.argv[0] не будут работать или будут работать wierd при компиляции PyInstaller, потому что магические свойства не установлены на уровне __main__, а sys.argv[0] - это способ, которым вызвал ваш exe (означает, что на него влияет рабочий каталог).