使用python按规则将文件复制到指定文件夹

import os
import shutil
import xlrd


def open_excel(f_name="./test.xlsx"):
    """
    打开excel文件
    :param f_name: 文件名
    :return: data
    """
    try:
        data = xlrd.open_workbook(f_name)
        return data
    except IOError as e:
        print(str(e))


def get_stage(f_name="./test.xls", by_name="Sheet1",
            quest_index=1, f_dir='客观题', index=4):
    """
    根据索引获取EXCEL表格中的数据
    :param f_name: 文件名
    :param by_name: Sheet1名称
    :param quest_index: 问题索引
    :param f_dir: 复制文件目录
    :param quest_index: 问题ID索引
    :param index: 字段索引
    :return:
    """
    data = open_excel(f_name=f_name)   # 打开excel文件
    table = data.sheet_by_name(by_name)      # 根据sheet名字来获取excel中的sheet
    n_rows = table.nrows - 2           # 行数, 减去前两行
    for row_num in range(n_rows):      # 遍历表格
        row = table.row_values(row_num + 2)
        stage = row[index-1]
        quest_f = row[quest_index-1][3:]+".xls"
        qf_name = os.path.join(f_dir, quest_f)
        if stage == '小学':
            copy_file(f_dir=f_dir+'-'+stage, file=qf_name)
        elif stage == '初中':
            copy_file(f_dir=f_dir+'-'+stage, file=qf_name)
        else:
            print("error")
            break


def copy_file(file='', f_dir='test'):
    """
    将文件复制到指定目录
    :param f_dir: 指定目录
    :param file: 指定文件
    :return:
    """
    shutil.copy(src=file, dst=f_dir)


ROOT = "E:/python/project/matrix/data/导出数据5.29"
f_name = '2.总表-主观题-available.xls'
f_dir = '4.学生答题记录-主观题'
sheet = 'Worksheet'
get_stage(f_name=os.path.join(ROOT, f_name),
        by_name=sheet, f_dir=os.path.join(ROOT, f_dir))

 

你可能感兴趣的:(python)