2016-03-03 40 views
1

我從SVN下載文件,文件相當大(〜300MB) 我多次使用腳本,萬一文件已經存在,我不想下載它又一次,因爲我需要驗證我的文件是一樣的,在SVN(連接問題有時會殺死我的腳本和下載沒有完成)如何驗證從svn下載的文件-python,osx

下載之前有任何驗證方式嗎? (如獲得SVN文件,我怎麼也找不到做校驗)

我使用這行下載:提前

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

謝謝...

回答

0

您可以檢查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)。

0

如果您有權訪問svn,您可以使用svn checkout簽出文件,然後運行svn update。 svn update會更新文件,如果它改變了,否則什麼也不做。

import os 
import subprocess 

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