今天在写一个Python脚本,要把一个svn project 先checkout出来,然后转到这个工程目录下执行其它的svn命令。

本来我是在Python里执行了一个cd命令,希望能转到目标工程目录下。但是这个cd命令一直执行不成功。后来了解到,其实这个cd命令已经执行 成功了,只是它执行完以后又返回了当前的工作目录(也就是执行python脚本的这个目录),所以最终结果其实跟cd没有执行一样。

如果要达到这个目的,应该在脚本中显式地改变当前工作目录。目前我使用的是 os.chdir(“目标目录”)。注意之前要import os

maven命令执行的时候,需要先到project目录,然后再执行(也可以通过设置-p参数来制定project文件)

如果使用os.chdir(‘newPath’)来修改当前目录的话,会同时修改掉python脚本的执行目录,会出错

如果用os.system执行命令的话,cmd的当前目录就是python脚本的当前目录

可以使用Subprocess来新开一个独立子进程来处理,并设置子进程的当前目录(和主进程python脚本的当前目录隔离开来了),如下,多个命令执行用&隔开(Linux下用;来隔开),调用wait方法来同步执行,不调用的话是异步执行。cmd就是新命令行执行时的当前路径。

cmd_all = "maven clean & maven -Dmaven.test.skip=true jar"

p = subprocess.Popen(cmd_all, shell=True, cwd=cmdCurrentDirectory)

#同步执行

retcode = p.wait()

参考资料:

1、http://blog.csdn.net/flying881114/article/details/6224266

2、http://desert3.iteye.com/blog/1439985

python 执行cmd命令 改变目录_Python 改变当前工作目录相关推荐

  1. windows python 执行cmd 命令启动浏览器跳转到指定网页

    windows python 执行cmd 命令启动浏览器跳转到指定网页 1.系统默认浏览器打开百度 cmd命令 # 有没有http都是可以的 start www.baidu.com python im ...

  2. python发送cmd命令_用Python 执行cmd命令

    我们通常可以使用os模块的命令进行执行cmd 方法一:os.system os.system(执行的命令) # 源码 def system(*args, **kwargs): # real signa ...

  3. python执行shell命令行_python执行命令行:python中执行shell命令行read结果

    +++++++++++++++++++++++++++++ python执行shell命令 1 os.system  (只有这个方法是边执行边输出,其他方法是最后一次性输出) 可以返回运行shell命 ...

  4. python 命令-python执行cmd命令

    我们在做手机端自动化的时候有时候可能会遇到需要执行cmd命令完成用例,我们一起学习下,通过python脚本执行cmd命令 cmd是什么 cmd是command的缩写.即命令提示行(CMD),是在OS ...

  5. python执行cmd subprocess持续_Python subprocess 使用的几个小问题

    一般调用 我们使用subprocess.Popen进行如下的子进程调用: import subprocess ​ cmd = ['ls'] process = subprocess.Popen(cmd ...

  6. python执行cmd命令行异步执行_Python 异步调用命令行工具

    当你在自己的 Python 程序中采用了基于事件循环的异步编程方法之后,你就会发现自己不自觉地被其牢牢吸引住,并不是说这一方法多么棒,而是因为你不得不想办法保证程序中的任意环节都不能是阻塞的! 例如当 ...

  7. python执行cmd命令,并获得返回值

    import os res = os.popen("ls").read() print(res) res = os.popen("nvidia-smi -L") ...

  8. python调用cmd命令释放端口_Python——cmd调用(os.system阻塞处理)(多条命令执行)...

    原博文 2017-11-14 15:29 − os.system(返回值为0,1,2)方法 0:成功 1:失败 2:错误 os.system默认阻塞当前程序执行,在cmd命令前加入start可不阻塞当 ...

  9. python执行cmd并返回是否成功_python脚本执行CMD命令并返回结果的例子

    最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...

  10. python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子

    最近写脚本的时想要用python直接在脚本中去执行cmd命令,并且将返回值打印出来供下面调用,所以特意查了下,发现主要有一下几种方式来实现,很简单: 就拿执行adb, adb shell, adb d ...

最新文章

  1. java web乱码问题_如何解决JavaWeb乱码问题
  2. 笑哭了,科研版《后浪》,那些人类积攒了几百年的文献,像是人类专门为你们准备的礼物...
  3. Windows Azure Platform Introduction (9) 申请Windows Azure 账户
  4. java如何实现python的urllib.quote(str,safe='/')
  5. 什么是 XML Web Service
  6. 前端有用JavaScript技巧
  7. python015 Python3 函数
  8. 南阳理工学院计算机acm,南阳理工学院计算机学院ACM队成员获奖情况[荣誉记]
  9. 海康大华PC客户端集成播放器
  10. java文字水印模糊_Java添加文字水印和图片水印
  11. AutoCAD查询插件的开发
  12. 理解FPS游戏中的矩阵方框透视自瞄
  13. 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
  14. 建站神器:使用Hexo+Kaze+Gitee 自建博客
  15. 你真的理解二分的写法吗 - 二分写法详解
  16. English考研句子第九句
  17. OEM,ODM,OBM,JDM概念
  18. Vim 输入法在normal和insert之间自动切换
  19. 终于有人把3D打印讲明白了
  20. 110个常用的jquery特效和插件

热门文章

  1. Opencv中convertTo函数2
  2. 西北乱跑娃 --- python繁体字简体字互转第三方库
  3. 手机Linux安装rtl8187L,fedora 19编译安装rtl8187l驱动问题
  4. 历年计算机信息系统管理师真题,历年计算机软考信息系统项目管理师真题
  5. 《实战突击:Java Web项目整合开发》简介及源码
  6. python工厂模式和单例模式_python之单例模式和工厂模式
  7. 科研必备:LaTeX论文排版软件的简介,安装与使用教程
  8. arduino win8 驱动安装
  9. 塞班S40手机内存出现乱码无法删除的解决办法
  10. 三星android智能手机usb驱动程序,三星手机安卓USB驱动Samsung USB Driver for Mobile Phones 1.5.51.0...