您的位置:首页 > 编程语言 > Python开发

[Python]读取xls并搜索文件夹,归类同名文件

2014-05-04 20:50 471 查看
整理手上的论文,按期刊分类,为每一类期刊分年份存放pdf。

# -*- coding:gb2312 -*-

import xlrd
import os
import glob
from shutil import copy

def searchEx(ex):
#根据编号返回文件名称
searchroot = r'E:\论文整理\待分类\整理前'
retrunName = ''
cwd = os.getcwd()
if searchroot:
os.chdir(searchroot)
for filename in glob.iglob('%s_*.pdf'%ex):
retrunName = filename
os.chdir(cwd)
return retrunName

path = r'E:\工作簿1.xlsx'
searchroot = r'E:\论文整理\待分类\整理前'
baseroot = r'E:\论文测试'
data = xlrd.open_workbook(path)
table = data.sheets()[0]
nrows = table.nrows
ncols = table.ncols

#print '合计%s行'%nrows
for i in range(1,nrows):
try:
name = table.row(i)[0].value.encode('gb2312') #文件夹名称
pathi = r'%s\%s'%(baseroot,name)
if not os.path.exists(pathi):
os.makedirs(pathi)
#print name
for j in range(2,21):
try:
num = str(table.row(i)[j].value).encode('gb2312')
if num <> '':
yearj = '%s'%str(j+1995)
pathij = r'%s\%s'%(pathi,yearj)  #tardir
if not os.path.exists(pathij):
os.makedirs(pathij)
multi = num.find(';')
if multi > 0:
for n in num.split(';'):
ex = '%04i'%float(n)
filename = searchEx(ex)
srcfile = r'%s\%s'%(searchroot,filename)
dstfile = r'%s\%s'%(pathij,filename)
#print srcfile,dstfile
copy(srcfile,dstfile)
else:
ex = '%04i'%float(num)
filename = searchEx(ex)
srcfile = r'%s\%s'%(searchroot,filename)
#print srcfile
dstfile = r'%s\%s'%(pathij,filename)
#print dstfile
copy(srcfile,dstfile)
except:
print "error: %i,%i"%(i,j)
continue
#break
except:
print "error: "
continue
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: