【问题标题】: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')