Python调用SVN命令无法checkout带空格目录的解决方案

背景简介:SVN路径存在空格的情况下,Python调用SVN命令进行一些操作会无法识别路径的情况。

解决方案:比如

需要checkout的路径:“svn://192.168.xxx.xxx/PROJ_NAME PROJECT/1.STD Lib/"

我们直接进行操作,如下:

import subprocess


svn_path = 'svn://192.168.xxx.xxx/PROJ_NAME PROJECT/1.STD Lib/'
file_path = 'D:/temp'
svn_user = 'xiaoming'
svn_password = '66666'
p = subprocess.Popen(['svn', 'checkout', svn_path, file_path, '--username', svn_user, '--password', svn_password], stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
print(p.stdout.read())

则会报错,识别出的路径为“svn://192.168.xxx.xxx/PROJ_NAME",如果我们删除空格,则会报错不存在对应的目录,因为删掉空格后路径变了,这个很明细那,那么该如何解决呢?

直接使用SVN上传可发现路径中空格全部被"%20"替换,所以我们直接将要处理的路径中的空格用"%20"替换掉即可。

svn_path = 'svn://192.168.xxx.xxx/PROJ_NAME PROJECT/1.STD Lib/'.replace(' ', '%20')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章