##分发
##移动文件夹下的所有文件
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)