python-windows处理文件夹操作

##分发

##移动文件夹下的所有文件



import os
import shutil

def move_files_recursively(src_path, dst_path):
    for item in os.listdir(src_path):
        s = os.path.join(src_path, item)
        d = os.path.join(dst_path, item)
        if os.path.isfile(s):
            shutil.move(s, d)
        elif os.path.isdir(s):
            if not os.path.exists(d):
                os.makedirs(d)
            move_files_recursively(s, d)

if __name__ == "__main__":
    src_folder = r"\\192.168.1.4\photography\data\销售" #源路径
    dst_folder = "F:\\数据模板\\数据清洗\\运营数据\\临时存放的站外表-分表" #移动路径 只需要该这两个地址

    if not os.path.exists(dst_folder):
        os.makedirs(dst_folder)

    move_files_recursively(src_folder, dst_folder)


###对文件夹下规律命名的文件进行指定到指定文件夹
import os
import shutil

def move_files(src_folder, target_dict):
    for item in os.listdir(src_folder):
        s = os.path.join(src_folder, item)
        if os.path.isfile(s):
            for search_string, dst_folder in target_dict.items():
                if search_string in item:
                    d = os.path.join(dst_folder, item)
                    if not os.path.exists(os.path.dirname(d)):
                        os.makedirs(os.path.dirname(d))
                    shutil.move(s, d)
                    break

# 使用示例对同个文件夹内不同命名的文件移到不同文件夹中
src_folder = "F:\\数据模板\\数据清洗\\运营数据\\临时存放的站外表-分表" #以上移动过来的路径
file_targets = {
    "天地通": "F:\\数据模板\\数据清洗\\运营数据\\天猫云台",
    "肥羊京东": "F:\\数据模板\\数据清洗\\运营数据\\京东数据",
    "云台京东": "F:\\数据模板\\数据清洗\\运营数据\\京东金花数据",
    "国鹊堂": "F:\\数据模板\\数据清洗\\运营数据\\天猫国鹊堂数据",
    "金花": "F:\\数据模板\\数据清洗\\运营数据\\天猫金花数据",
    "除风堂": "F:\\数据模板\\数据清洗\\运营数据\\天猫云台",
    "安康": "F:\\数据模板\\数据清洗\\运营数据\\咏安ali",
    "红盟拼多": "F:\\数据模板\\数据清洗\\运营数据\\红盟拼多多",
    "红盟京东": "F:\\数据模板\\数据清洗\\运营数据\\红盟京东数据",
    "大旗天猫": "F:\\数据模板\\数据清洗\\运营数据\\大旗国鹊堂数据",
    "大旗拼多": "F:\\数据模板\\数据清洗\\运营数据\\大旗拼多多数据",
    "枫页": "F:\\数据模板\\数据清洗\\运营数据\\枫页推广数据",
    "百度": "F:\\数据模板\\数据清洗\\运营数据\\百度推广数据",#该文件的移动路径,模糊命名
    # 添加其他文件名及其目标文件夹...
}

move_files(src_folder, file_targets)

#移动投放

#使用场景--投放数据






#使用场景--投放数据



#----------#创建新文件夹B---------------------------------------------------------------

import os

def create_subfolder_in_parent(parent_folder: str, subfolder_name: str):
    # 计算子文件夹的完整路径
    subfolder_path = os.path.join(parent_folder, subfolder_name)

    # 使用os.makedirs()创建新文件夹,包括所有不存在的父级目录
    try:
        os.makedirs(subfolder_path)
    except PermissionError:
        print(f"权限错误:无法在 {subfolder_path} 创建文件夹")
    except Exception as e:
        print(f"无法在 {subfolder_path} 创建文件夹: {e}")

# 使用你的路径和文件夹名称替换以下变量
parent_folder = "F:\\数据模板\\数据清洗\\投放数据"
subfolder_name = "B"

create_subfolder_in_parent(parent_folder, subfolder_name)



#---------------#将某一路径文件移到5文件夹----------------------------------------

import os
import shutil

def move_files_recursively(src_path, dst_path):
    for item in os.listdir(src_path):
        s = os.path.join(src_path, item)
        d = os.path.join(dst_path, item)
        if os.path.isfile(s):
            shutil.move(s, d)
        elif os.path.isdir(s):
            if not os.path.exists(d):
                os.makedirs(d)
            move_files_recursively(s, d)

if __name__ == "__main__":
    src_folder = r"\\192.168.1.4\photography\data\投放" #源路径
    dst_folder = "F:\数据模板\数据清洗\投放数据\B" #移动路径 只需要该这两个地址

    if not os.path.exists(dst_folder):
        os.makedirs(dst_folder)

    move_files_recursively(src_folder, dst_folder)


#对文件夹进行重命名
import os
from datetime import datetime

def rename_folder_by_datetime(folder_path: str):
    # 获取当前的本地时间
    current_time = datetime.now()

    # 使用今天的日期和时间点作为新的文件夹名称
    new_name = current_time.strftime('%Y%m%d_%H%M%S')

    # 生成新文件夹路径
    new_folder_path = os.path.join(os.path.dirname(folder_path), new_name)

    # 使用os.rename()函数重命名文件夹
    try:
        os.rename(folder_path, new_folder_path)
    except PermissionError:
        print(f"权限错误:无法重命名 {folder_path} 到 {new_folder_path}")
    except Exception as e:
        print(f"无法重命名 {folder_path} 到 {new_folder_path}: {e}")

# 使用你的路径替换以下变量
folder_path = "F:\数据模板\数据清洗\投放数据\B"

rename_folder_by_datetime(folder_path)



#专用复制批量文件

#将共享投放数据路径复制到红姐专业路径
import os
import shutil


def copy_all_files(src_folder: str, dest_folder: str):
    # 列出源文件夹中的所有文件和子文件夹名(不包括 '.' 和 '..')
    files = os.listdir(src_folder)

    # 遍历文件列表
    for file_name in files:
        # 生成源文件的完整路径
        src_file_path = os.path.join(src_folder, file_name)

        # 如果是文件,则复制到目标文件夹
        if os.path.isfile(src_file_path):
            # 生成目标文件的完整路径
            dest_file_path = os.path.join(dest_folder, file_name)

            try:
                # 复制文件
                shutil.copy2(src_file_path, dest_file_path)
            except PermissionError:
                print(f"权限错误:无法复制 {src_file_path} 到 {dest_file_path}")
            except Exception as e:
                print(f"无法复制 {src_file_path} 到 {dest_file_path}: {e}")


# 使用你的路径替换以下变量
src_folder = r"\\192.168.1.4\photography\data\投放"
dest_folder = r"\\192.168.1.4\photography\data\红姐专用"

copy_all_files(src_folder, dest_folder)

#删除文件

#删除文件

import os

def delete_all_files_in_folder(folder_path: str):
    # 遍历文件夹中的所有文件和子文件夹名(不包括 '.' 和 '..')
    for file_name in os.listdir(folder_path):
        # 生成文件的完整路径
        file_path = os.path.join(folder_path, file_name)

        # 如果是文件,则尝试删除它
        if os.path.isfile(file_path):
            try:
                os.remove(file_path)
                print(f"已删除文件 {file_path}")
            except PermissionError:
                print(f"权限错误:无法删除文件 {file_path}")
            except Exception as e:
                print(f"无法删除文件 {file_path}: {e}")

# 使用你的路径替换以下变量
folder_path = r"\\192.168.1.4\photography\data\红姐专用"

delete_all_files_in_folder(folder_path)

#使用python运行cmd命令,关闭win已打开的所有文件夹

import subprocess

# 关闭所有Explorer.exe进程
command = 'taskkill /IM explorer.exe /F'
subprocess.run(command, shell=True)

# 等待一段时间以确保Explorer.exe进程已经关闭
import time
time.sleep(2)

# 重新启动Explorer.exe进程
command = 'start explorer.exe'
subprocess.run(command, shell=True)

###注释以上原理为,关闭所有文件夹进程,此操作会隐藏所有图标,并且在持续两秒后,恢复所有图标的显示



#多py文件流程运行

import subprocess

# 关闭所有Explorer.exe进程
command = 'taskkill /IM explorer.exe /F'
subprocess.run(command, shell=True)

# 等待一段时间以确保Explorer.exe进程已经关闭
import time
time.sleep(2)

# 重新启动Explorer.exe进程
command = 'start explorer.exe'
subprocess.run(command, shell=True)

###注释以上原理为,关闭所有文件夹进程,此操作会隐藏所有图标,并且在持续两秒后,恢复所有图标的显示



#时间命名在文件夹前

##1.1#2.---------------对文件夹下文件进行新增今日日期的重命名

import os
from datetime import datetime, timedelta

# 获取jinri 日期
today1 = datetime.now()
formatted_today = today1.strftime('%H_%Y%m%d')

# 指定文件夹路径
folder_path = r"C:\Users\Q\Desktop\临时文件\站外"

# 遍历文件夹中的文件并重命名
for filename in os.listdir(folder_path):
    if os.path.isfile(os.path.join(folder_path, filename)):
        # 构造新的文件名(在原文件名前加上昨日日期)
        new_filename = f"{formatted_today}_{filename}"

        # 获取旧文件的完整路径和新文件的完整路径
        old_file = os.path.join(folder_path, filename)
        new_file = os.path.join(folder_path, new_filename)

        # 重命名文件
        os.rename(old_file, new_file)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值