92 lines
3.5 KiB
Python
92 lines
3.5 KiB
Python
|
#! /usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
|
|||
|
import sys
|
|||
|
import os
|
|||
|
import codecs
|
|||
|
|
|||
|
#设置相对路径
|
|||
|
def homeDir():
|
|||
|
path = sys.path[0]
|
|||
|
if os.path.isdir(path):
|
|||
|
return path
|
|||
|
elif os.path.isfile(path):
|
|||
|
return os.path.dirname(path)
|
|||
|
|
|||
|
if __name__=='__main__':
|
|||
|
filename = homeDir()+'/datalist.txt'
|
|||
|
f = open(filename,'r')
|
|||
|
file_uuid=homeDir()+'/uuid_path.txt'
|
|||
|
f_uuid= open(file_uuid,'r')
|
|||
|
file_dataset=homeDir()+'/dataset.txt'
|
|||
|
f_dataset=open(file_dataset,'w')
|
|||
|
|
|||
|
uuid_list=[] #从uuid-path文件中提取的uuid列表
|
|||
|
ftp_list=[] #从uuid-path文件中提取的ftp虚拟目录列表
|
|||
|
file_path=[] #与uuid-pathftp虚拟目录对应的物理地址目录列表
|
|||
|
ftp_list2=[] #从datalist文件中提取的ftp虚拟目录列表
|
|||
|
file_path2=[] #从datalist文件中提取的物理地址列表
|
|||
|
|
|||
|
##从uuid-path文件中提取uuid和ftp虚拟目录,并标准化
|
|||
|
for my_line in f_uuid:
|
|||
|
my_line=my_line.replace('"','')
|
|||
|
my_line=my_line.replace('\n','')
|
|||
|
my_line=my_line.split(';')
|
|||
|
uuid_list.append(my_line[0])
|
|||
|
ftp_str1=my_line[1]+'|'
|
|||
|
ftp_str1=ftp_str1.replace('/|','/')
|
|||
|
ftp_str1=ftp_str1.replace('|','/')
|
|||
|
ftp_list.append(ftp_str1)
|
|||
|
##从datalist文件中提取ftp虚拟目录和物理地址,并标准化
|
|||
|
for line in f:
|
|||
|
path= line.split(',')
|
|||
|
ftp_str='ftp://ftp.westgis.ac.cn'+path[0]+'|'
|
|||
|
ftp_str=ftp_str.replace('/|','/')
|
|||
|
ftp_str=ftp_str.replace('|','/')
|
|||
|
|
|||
|
ftp_list2.append(ftp_str)
|
|||
|
file_path2.append(path[1])
|
|||
|
#根据uuid-path提供的ftp虚拟目录,求序列出对应的物理地址目录
|
|||
|
for index in range(len(uuid_list)):
|
|||
|
file_temp='a'
|
|||
|
ftp_path=ftp_list[index]
|
|||
|
for i in range(len(ftp_list2)):
|
|||
|
if ftp_path==ftp_list2[i]:
|
|||
|
file_temp=file_path2[i]
|
|||
|
file_path.append(file_temp)
|
|||
|
##输出文件
|
|||
|
for k in range(len(uuid_list)):
|
|||
|
#输出dataset.txt文件
|
|||
|
uuid=uuid_list[k]
|
|||
|
f_dataset.write(ftp_list[k].replace('ftp://ftp.westgis.ac.cn','')+'\n')
|
|||
|
f_dataset.write(uuid_list[k]+'\n')
|
|||
|
path_temp=file_path[k]
|
|||
|
path_temp=unicode(path_temp,'utf8')
|
|||
|
|
|||
|
#输出uuid.txt文件
|
|||
|
temp_file=homeDir()+'/data/'+uuid+'.txt'
|
|||
|
if os.path.isfile(temp_file):
|
|||
|
f_temp=codecs.open(temp_file,'w+','utf-8')
|
|||
|
else:
|
|||
|
f_temp=codecs.open(temp_file,'w','utf-8')
|
|||
|
if path_temp<>'a':
|
|||
|
result=os.walk(path_temp)
|
|||
|
for root_dir,sub_dir,base_file in result:
|
|||
|
|
|||
|
root_str=str(sum([os.path.getsize(root_dir+'\\'+filename) for filename in base_file]))+'\t'+root_dir
|
|||
|
root_str=root_str.replace(path_temp,ftp_list[k].replace('ftp://ftp.westgis.ac.cn',''))
|
|||
|
root_str=root_str.replace('\\','/')
|
|||
|
f_temp.write(root_str.replace('//','/')+'\n')
|
|||
|
f_temp.write('directory\n')
|
|||
|
for base_name in base_file:
|
|||
|
file_str=str(os.path.getsize(root_dir+'\\'+base_name))+'\t'+root_dir+'/'+base_name
|
|||
|
file_str=file_str.replace(path_temp,ftp_list[k].replace('ftp://ftp.westgis.ac.cn',''))
|
|||
|
file_str=file_str.replace('\\','/')
|
|||
|
f_temp.write(file_str.replace('//','/')+'\n')
|
|||
|
f_temp.write('file\n')
|
|||
|
f_temp.close()
|
|||
|
f.close()
|
|||
|
f_uuid.close()
|
|||
|
f_dataset.close()
|
|||
|
print '===end====='
|