【问题标题】:How to validate a file downloaded from svn - Python, osx如何验证从 svn 下载的文件 - Python,osx
【发布时间】:2016-03-03 12:53:28
【问题描述】:

我从 SVN 下载文件,文件很大(~300MB) 我多次使用该脚本,如果文件已经存在,我不想再次下载它,因为我需要验证我拥有的文件与 SVN 上的文件相同(连接问题有时会杀死我的脚本和下载没有完成)

下载前有什么方法可以验证吗? (比如获取 svn 文件的校验和,我找不到怎么做)

我正在使用此行进行下载:

    fn,download_exit_code=urllib.urlretrieve(url_path,ver_name)

先谢谢了...

【问题讨论】:

    标签: python macos validation svn checksum


    【解决方案1】:

    您可以检查 SVN 修订号。这是一些对我有用的代码:

    import subprocess
    svn_url = ...
    version_string = subprocess.check_output("svnversion")
    parts = version_string.split(":")
    svn_version = int(''.join([s for s in parts[-1] if s.isdigit()]))
    
    repository_info = subprocess.check_output(
            "svn info " + svn_url
            )
    for line in repository_info.split("\n"):
        if line.lower().startswith("last changed rev"):
            latest_svn_version = int(''.join([s for s in line if s.isdigit()]))
    if svn_version < latest_svn_version:
        # Download new
    

    需要您使用 SVN 来下载您的文件,不过(通过 svn up)。

    【讨论】:

      【解决方案2】:

      如果您可以访问 svn,您可以使用 svn checkout 签出文件,然后运行 ​​svn update。 svn update 将更新文件,如果它已经改变,否则什么都不做。

      import os
      import subprocess
      
      os.chdir('/path/to/file')
      subprocess.check_call('svn update')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多