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')

 

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