4. 产品测试记录导出工具#

  1. 根据产品序号文件自动导出对应产品的测试记录文件

  2. 根据模板自动生成虚拟的产品测试文件

4.1. 获取目录下所有文件的名称#

# 遍历目录下的文件名
import os

root_dir = r'./test'

file_number = 0
for root,dirs,files in os.walk(top=root_dir):
    # 不遍历子目录的方法
    # dirs.clear()
    for file in files:
        print(f'{os.path.join(root,file)}')
        file_number += 1
print(f'{os.path.abspath(root_dir)}目录下有:{file_number}个文件')
/home/docs/checkouts/readthedocs.org/user_builds/tgl-notebook/checkouts/latest/source/Python/jupyter/test目录下有:0个文件

4.2. 拷贝文件#

拷贝出来的文件修改时间保持不变

# 拷贝文件
import os
import shutil

dst_dir = r'./'

if not os.path.exists(dst_dir):
    os.mkdir(dst_dir)

# 文件属性会改变为当前时间
# shutil.copyfile(r'./.markdownlint.json',os.path.join(dst_dir,r'.markdownlint.json'))
# 文件的修改时间属性不会改变
shutil.copy2(r'./.markdownlint.json',os.path.join(dst_dir,r'.markdownlint.json'))

print(f'原始文件修改时间:{os.path.getmtime(r'./.markdownlint.json')}')
print(f'拷贝文件修改时间:{os.path.getmtime(os.path.join(dst_dir,r'.markdownlint.json'))}')
  Cell In[2], line 15
    print(f'原始文件修改时间:{os.path.getmtime(r'./.markdownlint.json')}')
                                         ^
SyntaxError: f-string: unmatched '('

4.3. 判断文件名是否包含产品编号#

# 判断产品编号是否在文件名中

file_name = r'\\CSY\信号机模块.12345.xlxs'
serial_number = r'12345\n  '

# 去除字符串两端的空格及末尾的换行符
print(f'{serial_number.strip().rstrip(r"\n").rstrip(r'\r') = }')

serial_number = serial_number.strip().rstrip(r"\n")

print(f'文件名:{os.path.splitext(file_name)[0]}\n后缀名:{os.path.splitext(file_name)[1]}')
print(f'{os.path.splitroot(file_name) = }')
print(f'{os.path.splitdrive(file_name) = }')
print(f'{os.path.basename(file_name) = }')

if os.path.splitext(file_name)[0].endswith(serial_number):
    print(f'编号{serial_number.strip()}的是文件名:{file_name}')
else:
    print(f'未找到{serial_number}对应的文件名')

4.4. 第1种方式提取产品测试记录#

  1. 依次读取目录下的文件名

  2. 对比文件名和产品编号

  3. 若匹配就拷贝文件

该方式因每个产品都需遍历目录,所以较慢

# 指定产品序列号文件和产品测试记录文件目录自动提取序列号对应的测试记录文件
# 相同环境执行时间为:1m27.7s

import os
import shutil
import pprint

def get_directory_files(root:str,recursion:bool=True):
    """
    获取目录下的所有文件

    root: 需要遍历的文件夹目录
    recursion: 是否遍历子文件夹目录
    """

    for root, dirs, files in os.walk(top=root):
        if not recursion:
            dirs.clear()
        for file in files:
            yield os.path.join(root,file)

# pprint.pprint([i for i in get_directory_files(r'./')])
# print(f'文件总数:{sum(1 for _ in get_directory_files(r'./'))}')

def query_serial_number_from_directory(serial_number:str,root_dir:str,dst_dir = r'./导出的测试记录') -> bool:
    """
    从指定目录查找含有指定产品编号的测试记录文件

    serial_number: 要查找的产品编号
    root_dir: 测试记录存放目录
    """

    # 如果目标文件夹不存在,先创建目标文件
    if not os.path.exists(dst_dir):
        os.mkdir(dst_dir)

    # 删除序列号的前后空格及末尾换行符
    serial_number = serial_number.strip().rstrip(r"\n").rstrip(r'\r')
    for file_name in get_directory_files(root_dir):
        if os.path.splitext(file_name)[0].endswith(serial_number):
            shutil.copy2(file_name,os.path.join(dst_dir,os.path.basename(file_name)))
            print(f'导出 > {file_name}')
            return True
    
    return False

def query_numbers_form_directory(number_file:str, root_dir:str, dst_dir = r'./导出的测试记录'):
    """
    从目录下查询产品序号文件中的所产品测试记录

    number_file: 产品序号文件
    root_dir: 产品测试记录源目录
    """

    with open(number_file,'r',encoding='gbk') as f:
        log = open('log.txt',"a+")
        log.write(f'产品序号记录文件:{os.path.abspath(number_file)}\n')
        for number in f.readlines():
            if not query_serial_number_from_directory(number,root_dir,dst_dir):
                log.write(f'--> 在目录{os.path.abspath(root_dir)}及其子文件夹下未找到编号:{number}的测试记录!\n')
        log.close()


numbers = r'./SerialNumber.csv'
records = r'\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023'

query_numbers_form_directory(numbers,records,dst_dir=r'./')
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511441.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511342.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511324.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511306.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511453.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511216.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511230.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511347.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511318.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511339.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511449.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511450.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511424.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511348.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511210.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511231.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511451.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511418.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511340.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511211.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511358.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511447.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511173.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511431.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511183.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511430.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511338.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511446.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511421.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511233.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511432.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511213.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511499.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511344.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511325.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511187.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511403.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511235.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511404.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511304.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510781.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510778.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510503.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510602.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510533.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510604.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510690.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510618.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510714.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510588.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510688.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510713.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510538.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510641.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510600.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510634.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510697.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510774.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510632.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510514.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510803.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510806.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510512.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510611.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510769.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510804.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510687.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510767.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510802.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510770.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510626.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510610.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510638.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510635.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510620.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510621.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510615.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510780.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510801.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510605.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510625.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511178.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510622.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510536.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511480.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510630.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511320.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510631.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510529.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511426.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510613.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510719.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510590.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510807.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511185.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511208.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510692.xlsx
导出 > \\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510502.xlsx

4.5. 第2种方式#

  1. 先将目录下的所有文件名存到临时文件中

  2. 再从文件中对比产品编号

  3. 若匹配就拷贝测试记录

该方法因不用每个编号都遍历整个文件夹,所以相对较快

# 一个函数完成从编号文件导出测试记录,该函数运行快
# 相同环境执行时间为:5.1s

import os
import shutil
import tempfile

def query_fast(SerialNumbers:str,RootDir:str,DstDir:str=r'./导出的测试记录'):
    """
    根据产品序号文件,从测试记录目录中提取产品测试记录文件到指定目录下

    SerialNumbers: 产品序号,每行对应1个产品序号
    RootDir: 产品测试记录存储目录
    DstDir: 测试记录导出目录
    """

    # 若导出目录不存在,先创建导出目录
    if not os.path.exists(DstDir):
        os.mkdir(DstDir)
    
    # 扫描存储目录下的所有文件名,并存储在临时文件中
    temp_filenames = tempfile.TemporaryFile('w+')
    for root, dirs, files in os.walk(RootDir):
        for file in files:
            temp_filenames.write(os.path.join(root,file)+'\n')
    
    # 从产品编号文件中读取产品编号,并在刚刚扫描存储的临时文件中提取文件记录
    with open(file=SerialNumbers) as f:
        ok = 0
        err = 0
        for number in f.readlines():
            # 删除产品编号中的空格及末尾换行符
            number = number.strip().rstrip(r'\n').rstrip(r'\r')
            if number != "":
                temp_filenames.seek(0)
                state = False
                for file_name in temp_filenames.readlines():
                    file_name = file_name.strip().rstrip(r'\n').rstrip(r'\r')
                    if os.path.splitext(file_name)[0].endswith(number):
                        print(file_name)
                        shutil.copy2(file_name,os.path.join(DstDir,os.path.basename(file_name)))
                        ok += 1
                        state = True
                        break
                
                if not state:
                    with open('log.txt','a+') as log:
                        log.write(f'未从{os.path.abspath(RootDir)}目录及其子目录中找到产品编号:{number}的测试记录文件\n')
                    err += 1
        
        print(f'导出产品编号记录文件{SerialNumbers}:成功{ok}个,失败{err}个')
    
    temp_filenames.close()
                        
numbers = r'./SerialNumber.csv'
records = r'\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023'

query_fast(numbers,records,DstDir=r'./')
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511441.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511342.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511324.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511306.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511453.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511216.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511230.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511347.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511318.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511339.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511449.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511450.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511424.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511348.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511210.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511231.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511451.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511418.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511340.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511211.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511358.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511447.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511173.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511431.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511183.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511430.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511338.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511446.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511421.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511233.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511432.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511213.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511499.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511344.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511325.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511187.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511403.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511235.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511404.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511304.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510781.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510778.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510503.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510602.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510533.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510604.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510690.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510618.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510714.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510588.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510688.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510713.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510538.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510641.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510600.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510634.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510697.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510774.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510632.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510514.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510803.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510806.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510512.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510611.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510769.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510804.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510687.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510767.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510802.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510770.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510626.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510610.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510638.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510635.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510620.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510621.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510615.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510780.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510801.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510605.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510625.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511178.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510622.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510536.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511480.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510630.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511320.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510631.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510529.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511426.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510613.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510719.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510590.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510807.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511185.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381511208.xlsx
\\Csy\测试文件 (d)\产品测试记录(JL-8.6-01)\一般产品\(D)道岔模块\TH-USM310-Ⅰ道岔电流、功率采集传感器\2023\30638151XXXX 10-9 120\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306381510692.xlsx
导出产品编号记录文件./SerialNumber.csv:成功97个,失败1个

4.6. 使用模板文件生成虚拟测试记录#

根据模板文件, 以及需要生成的产品编号。自动生成对应个数据的虚拟产品测试记录

# 生成虚拟产品编号测试记录
# openpyxl 无法操作.xls文件

from openpyxl import *

def generate_virtual_record(Templatefile:str, NumPrefix:str, Count:int, Start:int=1, NumberCell:str=r'B3', DstDir=r'./生成的测试记录'):
    """
    根据给后模板文件,生成指定个数据的虚拟产品测试记录

    Templatefile: 数据生成的模板文件,新生成的文件为:该文件名+产品序号
    NumPrefix: 产品编号中4位序号前的文本
    Count: 要生成的虚拟产品测试记录总个数
    Start: 虚拟产品编号的开始序号
    NumberCell: 测试表格中产品编号所在单元格位置
    DstDir: 新生成的测试记录文件存放目录
    """

    # 检查 产品起始号+产品数据是否 > 9999
    if Start+Count > 9999:
        print(f'从序号{Start}开始的{Count}个虚拟产品,编号总数会超过4位编号最大值9999')
        return

    # 判断存放目录是否存在
    if not os.path.exists(DstDir):
        os.mkdir(DstDir)
    
    book = load_workbook(Templatefile)
    sheet = book.active
    file_name = os.path.splitext(os.path.basename(Templatefile))[0]
    file_suffix = os.path.splitext(os.path.basename(Templatefile))[1]

    for i in range(Count):
        sheet[NumberCell] = f'{NumPrefix}{i+Start:04}'
        NewFile =  os.path.join(DstDir, f'{file_name}{NumPrefix}{i+Start:04}{file_suffix}')
        print(NewFile)
        book.save(NewFile)


tempelate = r'./TH-USM310-Ⅰ道岔电流功率采集传感器测试记录.xlsx'
generate_virtual_record(tempelate,"306X8151",5,Start=100)
./生成的测试记录\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306X81510100.xlsx
./生成的测试记录\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306X81510101.xlsx
./生成的测试记录\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306X81510102.xlsx
./生成的测试记录\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306X81510103.xlsx
./生成的测试记录\TH-USM310-Ⅰ道岔电流功率采集传感器测试记录306X81510104.xlsx