Как получить доступ к каталогу рабочего пространства Atom в сценарии Python - PullRequest
0 голосов
/ 21 апреля 2020

Я работал над сценарием Python и хотел получить доступ к текущему рабочему каталогу Atom в этом сценарии.

Atom построен на электроне. js, и способ, которым вы делаете это в JavaScript is:

let filePath = atom.workspace.getActiveTextEditor().getPath();

Мне нужна эта переменная (просто каталог) в моем скрипте Python.

1 Ответ

0 голосов
/ 21 апреля 2020

Идея того, чего вы пытаетесь достичь, вызывает у меня некоторые головные боли. Хотя, конечно, можно вызывать интерпретатор Python из JavaScript, это, вероятно, не лучший пользовательский опыт для людей, использующих ваш пакет.

Перед запуском сценария Python пакет должен проверить как минимум следующее:

  • У пользователя установлена ​​правильная версия Python, установленная
  • python подвергается действию PATH
  • , активный файл может быть интерпретирован как Python

Это разные проблемы, но, тем не менее, некоторые из них вам необходимо разобраться .

Вы не указали, вызываете ли вы скрипт Python в синхронной или асинхронной функции. Я собираюсь предположить первое, так как для JavaScript новичков легче следовать, но вы можете изменить это на следующем шаге

JavaScript

// Import Node's spawn method
const { spawnSync } = require('child_process');

// Get path of active file
const activeEditorPath = atom.workspace.getActiveTextEditor().getPath();

// Spawn child process
const child = spawnSync('python', ['path/to/your/script', activeEditorPath]);

Python

import sys

# Get argument
active_editor_path = sys.argv[1]

# Print editor path
print(f'Active editor path: {active_editor_path}')
...