javascript - 如何在 Python 脚本中访问 Atom 工作区目录
问题描述
我正在编写一个 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}')
推荐阅读
- adb - 无法通过 adb 打开数据库“/data/data/com.android.providers.settings/databases/settings.db”
- javascript - 全球企业代理背后的 npm 项目
- php - 高速公路管理订阅
- error-handling - 从 JMS 发送消息时如何捕获错误
- bash - Bash脚本:带有If语句的While循环导致无限循环
- javascript - Google API 日历承诺
- servlets - AEM CQ5 servlet 未在本地环境中调用
- javascript - React Native:Android 未显示所有图像(即使它们相同)
- php - 最后用 ?> 查找文件的简单方法?
- c++ - 如何制作 std::function 参考