问一个 python 的问题, subprocess.Popen 打开 txt 文件

2016-04-29 22:48:58 +08:00
 smyouxia
# 这 3 行代码都能执行成功,为什么不需要路径。
notepad_pipe = subprocess.Popen(['NOTEPAD', txtPath])
# notepad_pipe = subprocess.Popen(['notepad.exe', txtPath])
# notepad_pipe = subprocess.Popen(["C:\WINDOWS\system32\notepad.exe", txtPath])


我好像有点眉目了,这 3 行代码也能执行成功,貌似 C:\WINDOWS\system32\下面的可执行文件都可以这么用
notepad_pipe = subprocess.Popen(['MSPAINT', jpgPath])
# notepad_pipe = subprocess.Popen(['mspaint', jpgPath])
# notepad_pipe = subprocess.Popen(['mspaint.exe', jpgPath])

求大神给个最终答案
2471 次点击
所在节点    Python
2 条回复
264768502
2016-05-05 19:59:13 +08:00
windows 不区分大小写
系统 path 路径下的程序可以不写绝对路径
windows 可执行程序可以省略后缀(exe, bat, com)

你换到别的系统就不能这么玩了
smyouxia
2016-05-26 17:32:20 +08:00
@264768502 嗯, python 的 path 加上系统的 path 。
如果想换到别的系统还能这么玩,可以在代码中导入环境变量。
new_env = os.environ.copy()
new_env['PATH'] = "".join([new_env['PATH'], ";", path_test])
os.environ.__setitem__('PATH', new_env['PATH'])
#或者
#os.environ.update(new_env)
通过环境变量可以自己制作 cmd 命令

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/275429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX