[记录]python提取局域网共享文件夹文件操作

背景简述:

(1)获取局域网共享目录下,所有文件;

(2)将文件进行更名操作;

文件名格式:日期_通道号_电话号码.wav或日期_电话号码_通道号.wav.

(3)重命名保存要求

<1> 日期保持不变;

<2>通道号倒置(亦可更换成其他的要求)

<3>电话号码随机11位(不做校验)

下图,是测试文件,文件存在局域网共享目录下,文件名称有特殊字符下划线“_”标识。

import os
import random
import re

# 1. 获取局域网共享文件夹及文件夹里的所有文件
shared_folder_path = r'\\0501008637\test'#替换成自己的贡献文件路径

# 遍历文件夹中的所有文件
file_paths = []
for foldername, subfolders, filenames in os.walk(shared_folder_path):
    for filename in filenames:
        file_path = os.path.join(foldername, filename)
        file_paths.append(file_path)

# 2. 提取每个文件的文件名
file_names = [os.path.basename(file_path) for file_path in file_paths]
# # 打印所有文件的文件名
# for file_name in file_names:
#     print(file_name)


'''
员工通道号匹配说明,现测试针对test下,只有8006和8027
'''

def change8006():
    return "6008"

def change8027():
    return "7208"

# def case3():
#     return "This is case 3"

def default_case():
    return "This is the default case"

# 定义一个字典,将case的值作为键,相应的函数作为值
switch_dict = {
    8006: change8006,
    8027: change8027
}

# 定义一个函数,接受case作为参数,并调用相应的函数
def switch(case):
    return switch_dict.get(case, default_case)()


# 3. 重新命名文件名,并另存至原文件夹下
for i, file_path in enumerate(file_paths):
    original_file_name = file_names[i]
     # 使用正则表达式提取文件名中的指定部分
    pattern = r'(\d+)_(\d+)_([^_]+)?\.wav'


    match = re.match(pattern, os.path.basename(original_file_name))
    if match:
        # 提取分段信息
        segment1 = match.group(1)
        segment2 = match.group(2)
        segment3 = match.group(3) if match.group(3) else 'null'
        print("通话时间:", segment1)
#         # 解析通话时间字符串为datetime对象
#         segment1 = datetime.strptime(segment1, '%Y%m%d%H%M%S')
#         # 将通话时间格式化为'YYYY-MM-DD HH:MM:SS'的格式
#         formatted_call_time = segment1.strftime('%Y-%m-%d %H:%M:%S')
#         print(formatted_call_time)
        print("通道号:", segment2)
#         segment2 = switch(int(segment2))
        print("客户号:", segment3)
        segment3 = ''.join(random.choice('0123456789') for _ in range(11))
        
    else:
        print("文件名格式不匹配")

    # 自定义命名规则,这里使用文件在列表中的索引作为新的文件名前缀
    new_file_name = f"{segment1}_{segment2}_{segment3}.wav"
    new_file_path = os.path.join(os.path.dirname(file_path), new_file_name)
    print(new_file_name)
    print(new_file_path)
    # 重命名文件
#     os.rename(file_path, new_file_path)
 # 复制文件到新文件夹
    with open(file_path, 'rb') as source_file, open(new_file_path, 'wb') as destination_file:
        destination_file.write(source_file.read())
    print('----- '*5)

print("文件重命名完成,新文件名已另存至原文件夹下。")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值