V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
smyouxia
V2EX  ›  Python

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

  •  
  •   smyouxia · 2016-04-29 22:48:58 +08:00 · 2454 次点击
    这是一个创建于 2929 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 这 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])

    求大神给个最终答案
    2 条回复    2016-05-26 17:32:20 +08:00
    264768502
        1
    264768502  
       2016-05-05 19:59:13 +08:00 via Android   ❤️ 1
    windows 不区分大小写
    系统 path 路径下的程序可以不写绝对路径
    windows 可执行程序可以省略后缀(exe, bat, com)

    你换到别的系统就不能这么玩了
    smyouxia
        2
    smyouxia  
    OP
       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 命令
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   998 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:59 · PVG 05:59 · LAX 14:59 · JFK 17:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.