从 python 启动查找器

Ash*_*Ash 2 python python-2.7 14.04

我希望在终端中输入一个子文件夹名称,并让脚本在 finder 中启动它。这是我的代码:

import sys
import os

fullname='/home/ash/caffe/examples/imagenet/train_rest/'+str(sys.argv[1])

os.system(gnome-open fullname)
Run Code Online (Sandbox Code Playgroud)

然而,'gnome-open' 似乎只接受传统 /path/to/file 格式的路径。有没有办法解决这个问题?提前致谢!

Jac*_*ijm 9

你根本不应该使用os.system()。它已被弃用,真的,真的很老式,不鼓励再使用。

而是使用subprocess.Popen()subprocess.call()

import sys
import subprocess

subprocess.Popen(["gnome-open", '/home/ash/caffe/examples/imagenet/train_rest/'+sys.argv[1]])
# or:
subprocess.call(['gnome-open', '/home/ash/caffe/examples/imagenet/train_rest/'+sys.argv[1]])
Run Code Online (Sandbox Code Playgroud)

还:

没必要用str(sys.argv[1],就用sys.argv[1]

笔记

可能不需要说,但是如果您的参数(-directory)包含带空格的名称,请使用引号,例如

python <script> '/path/with/name with spaces'
Run Code Online (Sandbox Code Playgroud)