Для текущей рабочей директории Python установлен начальный путь вместо директории скрипта

#python #json #python-2.7 #visual-studio-code

#python #json #python-2.7 #visual-studio-code

Вопрос:

Почему я не получаю файл json, записанный на диск в текущем рабочем каталоге (расположение скрипта) при выполнении следующего скрипта? Разве dump () не должен это делать?

 def getShotFolders():
    shotDict = {
        "root" : shotExample,
        "shot_subdirs" : []
    }  
    for root, dirs, files in os.walk(shotExample, topdown=False):
        if root != shotExample:
            shotDict["shot_subdirs"].append(os.path.relpath(root,shotExample))

    pprint(shotDict)
    with open("shot_folderStructure.json", "w") as write_file: 
        json.dump(shotDict, write_file )

getShotFolders()
  

РЕДАКТИРОВАТЬ: Хорошо, я запускаю свои файлы python из vscode, щелкая правой кнопкой мыши «выполнить файл python в терминале», который выводит C:/Python27/python.exe c:/Users/user/Desktop/test.py команду.

Если я запускаю скрипт из pycharm с тем же набором python, что и интерпретатор проекта, создаются файлы json, но почему?

EDIT2: ок, по какой-то причине, когда я выполняю скрипт, cwd является моей домашней папкой, не должна ли она указывать путь к скрипту python. Я знаю, что это можно исправить с помощью os.chdir(os.path.dirname(__file__)) но так не должно быть, верно?

Ответ №1:

Убедитесь, что вы открываете свою C:UsersuserDesktop папку в VS Code, чтобы установить cwd на свой рабочий стол (если вы откроете файл напрямую, это не изменит ваш рабочий каталог).