python - 为什么我的 clojure shell 结果与 python 中的结果不同?

标签 python clojure

在使用 python repl 时,我经常需要编辑多行代码。

所以我使用 import os 然后 os.system("notepad npad.py")

在 clojure 中,我首先运行 (use '[clojure.java.shell :only [sh]])

然后我运行 (sh "notepad""jpad.clj")

这会启动记事本,但不是以有用的方式,因为 clojure repl 现在挂起。换句话说,在我关闭记事本之前,我无法在 repl 中输入代码,我希望两者都保持打开状态。

我知道不用 clojure 也可以轻松打开记事本,所以这没什么大不了的。但是,有没有办法让clojure在不挂起的情况下启动一个外部进程呢?

最佳答案

future 是一种让工作在后台运行的便捷方式,以后很容易检查进程。

user> (def notepad-process (future (sh "emacs" "jpad.clj")))
#'user/notepad-process

编辑文件一段时间,如果需要退出代码,稍后检查进程:

user> @notepad-process
{:exit 0, :out "", :err ""} 

关于python - 为什么我的 clojure shell 结果与 python 中的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010364/

相关文章:

clojure - 如何制作自定义 clojure.spec 生成器?

javascript - 有哪些选项可用于定义具有 node.js 依赖项的 Python 包?

Python - 如何将父子转换为嵌套字典

clojure - :scope "test" mean in build. 启动依赖是什么?

scala - Scala 或库中是否存在与 Clojure 的 diff 等价的应用到 map 的方法?

java - 如何从 jar 运行 maven 打包的 clojure 应用程序

python - 如何设计和实现编程语言?

python - rpy2 rmagic 用于 ipython 将数据帧列名称中的破折号转换为点

python - 导入错误 : No module named _smbus_cffi

python - 在 python 中打开 .scd 文件?