如何在 Python 脚本中访问 Atom 工作区目录
How to access Atom workspace directory in a Python script
我正在编写一个 Python 脚本,想在该脚本中访问 Atom 的当前工作目录。
Atom 建立在 electron.js 之上,您在 JavaScript 中的做法是:
let filePath = atom.workspace.getActiveTextEditor().getPath();
我想在我的 Python 脚本中使用这个变量(只是目录)。
关于您要实现的目标的想法让我有些头疼。虽然从 JavaScript 调用 Python 解释器当然是可能的,但对于使用您的包的人来说,这可能不是最好的用户体验。
在 运行 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}')
我正在编写一个 Python 脚本,想在该脚本中访问 Atom 的当前工作目录。
Atom 建立在 electron.js 之上,您在 JavaScript 中的做法是:
let filePath = atom.workspace.getActiveTextEditor().getPath();
我想在我的 Python 脚本中使用这个变量(只是目录)。
关于您要实现的目标的想法让我有些头疼。虽然从 JavaScript 调用 Python 解释器当然是可能的,但对于使用您的包的人来说,这可能不是最好的用户体验。
在 运行 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}')