我希望在终端中输入一个子文件夹名称,并让脚本在 Finder 中启动它。这是我的代码:
import sys
import os
fullname='/home/ash/caffe/examples/imagenet/train_rest/'+str(sys.argv[1])
os.system(gnome-open fullname)
但是看起来“gnome-open”只接受传统 /path/to/file 格式的路径。有什么办法可以解决这个问题吗?提前致谢!
答案1
你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]])
还:
无需使用str(sys.argv[1]
,只需sys.argv[1]
。
笔记
可能不需要说,但如果您的参数(-directory)包含带空格的名称,请使用引号,例如
python <script> '/path/with/name with spaces'