python操作svn,自动update,中文路径问题

本文介绍了在使用TortoiseSVN时遇到的中文路径问题及其解决方案。当SVN更新到本地的路径为中文时,若使用UTF-8编码会导致乱码识别失败。文章详细解释了如何将中文路径转换为GBK编码,以确保SVN能够正确识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提条件是电脑上已经安装好tortoisesvn.且经过测试可以从SVN服务器上上传或下载更新文件。

需要注意的是:svn更新到本地的路径或者export到本地的路径如果是中文,utf-8的编码传给svn是会报错的,是乱码识别不了。 Windows下中文的编码格式是gbk .所以要把中文字符串编码为gbk。

svnconfig.py文件

# -*- coding: utf-8 -*-

setting={
    'svn':r'D:\Program Files\TortoiseSVN\bin',#svn的程序所在路径
    'url':'https://svn.xxxxx.com/svn/nsip/test',#svn地址
    'dist':u'D:\\VPN\\代码\\数据仓库存储过程修改备份\\PKG_SRC',#目标地址
    'closeOption': ' /closeonend:1'
    #'interval':15 #更新时间
}

# /closeonend:0 不自动关闭对话框
# /closeonend:1 如果没发生错误则自动关闭对话框
# /closeonend:2 如果没发生错误和冲突则自动关闭对话框
# /closeonend:3如果没有错误、冲突和合并,会自动关闭
# /closeonend:4如果没有错误、冲突和合并,会自动关闭

svn_update.py

 1 # -*- coding: utf-8 -*-
 2 #SVN的目录有中文
 3 #svn的命令传英文路径没有问题,中文路径由于编码问题会出现乱码
 4 #中文路径是utf-8的编码,传给SVN会出现乱码,识别不了
 5 #windows的中文编码是gbk. svn的中文路径需要转化为gbk的编码才能识别
 6 #cmd_gbk=cmd.encode("gbk")
 7 
 8 import time
 9 import os
10 import svnconfig
11 import sys
12 
13 reload(sys)
14 sys.setdefaultencoding('utf8')
15 
16 dist= svnconfig.setting['dist_test']
17 print(dist)
18 #cmd = 'TortoiseProc.exe /command:update /path '+ dist + ' /notempfile' + svnconfig.setting['closeOption']
19 cmd_utf8 = 'TortoiseProc.exe /command:update /path '+ dist
20 cmd_gbk=cmd_utf8.encode("gbk")   #必须得转成gbk,否则是乱码,不能正常执行
21 
22 print(cmd_utf8,type(cmd_utf8))
23 print(cmd_gbk,type(cmd_gbk))
24 #print(cmd)
25 result = os.system(cmd_gbk)
26 
27 if result == 0:
28     print('svn update success')
29 else:
30     print('svn update fail')

 

中文路径直接使用utf-8,没有编码成gbk之前的报错:

 

中文路径转化为gbk之后:

 

转载于:https://www.cnblogs.com/ttaobupt/p/9323072.html

使用Python可以通过调用svn命令行来自动更新svn工作目录。可以使用subprocess模块来执行svn命令行,并适用于Windows和Mac OS。以下是一个示例代码片段: ```python import subprocess def update_svn(workingspacepath): subprocess.call(['svn', 'update', workingspacepath]) # 使用方法 workingspacepath = '/path/to/workingspace' update_svn(workingspacepath) ``` 该代码片段中,我们通过subprocess调用了svn update命令来更新svn工作目录。其中,`workingspacepath`是svn工作目录的路径。 请注意,这只是一个简化的示例代码片段,你可能需要根据你的实际需求进行适当的修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python处理svn状态脚本](https://download.youkuaiyun.com/download/burnrock/9332463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python自动化之SVN更新](https://blog.youkuaiyun.com/sogouauto/article/details/44151273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值