我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python 更新svn 并 ftp更新

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python 更新svn 并 ftp更新

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pysvn
import locale
import datetime
import sys 
import os 
import json 
from ftplib import FTP 
def setlocale():
    language_code, encoding = locale.getdefaultlocale()
    if language_code is None:
        language_code = 'en_GB'
    if encoding is None:
        encoding = 'UTF-8'
    if encoding.lower == 'utf':
        encoding = 'UTF-8'
    locale.setlocale( locale.LC_ALL, '%s.%s' % (language_code, encoding))
def get_login( realm, username, may_save ):
    return True, 'test', 'test', True
def svncheckout():
    client = pysvn.Client()
    client.callback_get_login = get_login
    ret = client.checkout(url,path)
def svnupdate(path):
    client = pysvn.Client()
    ret = client.update(path)
    #print ret
    return ret
def svninfo(path):
    client = pysvn.Client()
    entry = client.info(path)
    Version = "Version: %s" % entry.commit_revision.number
    Author = "Author: %s" % entry.commit_author
    Update = "Update Date: %s" % str(datetime.datetime.fromtimestamp(entry.commit_time))[:-7]
    f = file('log.txt','a')
    f.write(Version+'\n'+Author+'\n'+Update+'\n'+'-'*32+'\n')
    f.close()
if __name__ == "__main__":
#path = "/home/yhq/python/svntest"
path = r"D:\virualsvn"
url = "http://192.168.5.110:808/svn/test/"
    #setlocale()
#svncheckout()
svnupdate(path)
svninfo(path)
############
_XFER_FILE = 'FILE' 
_XFER_DIR = 'DIR' 
class Xfer(object): 
    ''''
    @note: upload local file or dirs recursively to ftp server
    ''' 
    def __init__(self): 
        self.ftp = None 
    def __del__(self): 
        pass 
    def setFtpParams(self, ip, uname, pwd, port = 21, timeout = 60):         
        self.ip = ip 
        self.uname = uname 
        self.pwd = pwd 
        self.port = port 
        self.timeout = timeout 
    def initEnv(self): 
        if self.ftp is None: 
            self.ftp = FTP() 
            print '### connect ftp server: %s ...'%self.ip 
            self.ftp.connect(self.ip, self.port, self.timeout) 
            self.ftp.login(self.uname, self.pwd)  
            print self.ftp.getwelcome() 
    def clearEnv(self): 
        if self.ftp: 
            self.ftp.close() 
            print '### disconnect ftp server: %s!'%self.ip  
            self.ftp = None 
    def uploadDir(self, localdir='./', remotedir='./'): 
        if not os.path.isdir(localdir):   
            return 
        self.ftp.cwd(remotedir)  
        for file in os.listdir(localdir): 
            class="lazy" data-src = os.path.join(localdir, file) 
            if os.path.isfile(class="lazy" data-src): 
                self.uploadFile(class="lazy" data-src, file) 
            elif os.path.isdir(class="lazy" data-src): 
                try:   
                    self.ftp.mkd(file)   
                except:   
                    sys.stderr.write('the dir is exists %s'%file) 
                self.uploadDir(class="lazy" data-src, file) 
        self.ftp.cwd('..') 
    def uploadFile(self, localpath, remotepath='./'): 
        if not os.path.isfile(localpath):   
            return 
        print '+++ upload %s to %s:%s'%(localpath, self.ip, remotepath) 
        self.ftp.storbinary('STOR ' + remotepath, open(localpath, 'rb')) 
    def __filetype(self, class="lazy" data-src): 
        if os.path.isfile(class="lazy" data-src): 
            index = class="lazy" data-src.rfind('\\') 
            if index == -1: 
                index = class="lazy" data-src.rfind('/')                 
            return _XFER_FILE, class="lazy" data-src[index+1:] 
        elif os.path.isdir(class="lazy" data-src): 
            return _XFER_DIR, ''         
    def upload(self, class="lazy" data-src): 
        filetype, filename = self.__filetype(class="lazy" data-src) 
        self.initEnv() 
        if filetype == _XFER_DIR: 
            self.class="lazy" data-srcDir = class="lazy" data-src             
            self.uploadDir(self.class="lazy" data-srcDir) 
        elif filetype == _XFER_FILE: 
            self.uploadFile(class="lazy" data-src, filename) 
        self.clearEnv()  
if __name__ == '__main__': 
    #class="lazy" data-srcDir = r"C:\sytst" 
    class="lazy" data-srcDir = r"D:\xshell"
    #class="lazy" data-srcFile = r'C:\sytst\sar.c' 
    xfer = Xfer() 
    xfer.setFtpParams('192.168.5.110', '', '') 
    xfer.upload(class="lazy" data-srcDir)     
    xfer.upload(class="lazy" data-srcFile)


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python 更新svn 并 ftp更新

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python 更新svn 并 ftp更新

#!/usr/bin/env python# -*- coding:utf-8 -*-import pysvnimport localeimport datetimeimport sys import os import json from
2023-01-31

python 更新svn 并复制到其他目

#!/usr/bin/env python# -*- coding:utf-8 -*-import pysvnimport localeimport datetimeimport osdef setlocale(): language
2023-01-31

Python写自动化之SVN更新

在远程机器上执行脚本时,为了能够保证脚本的实时性,我们一般会将脚本存放到SVN上,远程机器通过SVN的操作去更新脚本;SVN更新脚本只需要2步就可以实现了,这个地方使用到pysvn库,看下实现# 初始化clientself.client =
2023-01-31

Python定期从SVN更新文件

如果一个测试站点要及时的从svn获取最新的文件,那么写一个定期更新程序是非常必要的,下面的代码Python的简单实现svnupdate.pyimport time,os,sys,svnconfigdist=svnconfig.setting
2023-01-31

golang gorm 更新并返回

问题内容在我的 golang 项目中,我使用 gorm,我需要使用返回子句进行 upsert 查询,以从查询中获取修改后的值。我可以进行 upsert,但我不知道如何将返回子句连接到它。表名是counters,代码如下:te := st
golang gorm 更新并返回
2024-02-05

怎么用SVN钩子自动更新项目

这篇文章主要讲解了“怎么用SVN钩子自动更新项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用SVN钩子自动更新项目”吧!使用post-commit更新1.SVN 服务器地址:192.
2023-06-04

Gorm 更新并在单个操作中获取更新的行?

大家好,我们又见面了啊~本文《Gorm 更新并在单个操作中获取更新的行?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~问题内
Gorm 更新并在单个操作中获取更新的行?
2024-04-04

Unity3d热更新(一):更新思路

目前Unity手游的热更新基本采用如下思路:首先将资源打包成AssetBundle。如果有两个对象共同依赖于同一个对象,需要采用依赖关系打包。AssetBundle需要根据不同的平台打包,各平台之间不能混用,如IOS和Android。为打包
2023-01-31

Python 软件热更新

本篇文章涉及技术知识如下:Redisthreading 多线程PyQt5importlib 热更新场景咱们在平时运行一些长时间都会一直运行的软件(如:某些云同步软件)的时候,某些功能因为考虑的情况可能不充分,导致体验不够好的时候,很多人都会
2023-01-31

linux python 更新版本

安装完CentOS6.5(Final)后,执行#Python与#python -V,看到版本号是2.6,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,有兴趣的朋友可以参考下这篇文章: 更新python千万不要把老版
2023-01-31

python怎么更新pip

更新Python中的pip的方法有“使用命令行工具更新”和“使用Python脚本更新”两种:1、在终端或命令行中输入“pip install --upgrade pip”命令使用最新版本的pip;2、创建一个新的Python脚本文件,添加更
python怎么更新pip
2023-12-19

亚马逊更新和部分更新

一些最常见的亚马逊更新是关于产品价格、产品描述、库存数量、新的SKU(库存单位)、新的支付选项、退货政策和交货方式等。此外,亚马逊还可能在每次更新时发布一些新的产品、更新的市场趋势和其他信息。需要注意的是,亚马逊的更新和改进通常是为了改善用户体验和增加客户支持,但具体的更新内容和策略可能因不同的市场和产品而有所不同。
2023-10-27

win10更新好还是不更新好

是否更新Windows 10取决于您个人的需求和偏好。以下是一些考虑因素:1. 安全性:更新Windows 10可以提供最新的安全补丁和功能,帮助保护您的计算机免受最新的威胁和漏洞。2. 新功能:更新可能会带来新的功能和改进,例如性能提升、
2023-08-26
2024-04-02

ADO.NET如何处理并发更新

这篇文章主要介绍了ADO.NET如何处理并发更新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设置并发模式Entity Framework 实现了乐观的并发模式(Optimi
2023-06-17

Python-使用watchdog热更新

直接上代码:import importlibfrom watchdog.observers import Observerfrom watchdog.events import *class ScriptEventHandler(FileS
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录