递归处理复制变量目录按原路径复制到新目录的脚本
脚本如下:
1 # coding: utf-8 2 3 """ 4 该脚本主要做把源目录下所有文件,照搬原路径基础上复制文件 5 """ 6 7 import os 8 # import shutil 9 import sys 10 import time 11 12 13 def copy_and_save_paths(src_dir, dst_dir): 14 """ 15 :param src_dir: 源目录路径 16 :param dst_dir: 目标目录路径 17 :return: 成功 True, 失败 False Bool 18 """ 19 # 检查源目录存在 20 if not os.path.exists(src_dir): 21 print('【ERROR】 源目录不存在') 22 return False 23 24 new_dst_dir = '%s/%s' % (dst_dir, src_dir) # 拼接出目标路径: 需保存的路径和源路径结合 25 # 确保目标目录存在 26 if not os.path.exists(new_dst_dir): 27 os.makedirs(new_dst_dir) 28 29 cd_cp_cmd = 'cd %s && cp -rf ./* %s' % (src_dir, new_dst_dir) # cd进去源目录路径, 拷贝到新路径 30 # cp_cmd = 'cp -rf ./* %s' % new_dst_dir # 拷贝到新路径 31 print('run cmd: %s' % cd_cp_cmd) 32 cmd_res = os.system(cd_cp_cmd) 33 if str(cmd_res) != '0': 34 print('【ERROR】cd_cp_cmd fail !!!!!!!!!') 35 return False 36 else: 37 print('cd_cp_cmd success.') 38 return True 39 40 41 def run_all(file_path, dst_dir): 42 """ 43 file_path: 目录列表文件 44 des_dir: 需复制到的目标目录路径 45 获取源路径的目录列表文件执行复制操作 46 """ 47 with open(file_path, 'r') as ff: 48 file_c = ff.read() 49 n = 0 # 进度数 50 r_n = 0 # 成功数量 51 e_n = 0 # 错误数量 52 all_n = 0 53 nn_n = 0 54 if file_c: 55 path_list = file_c.split('\n') 56 n = 0 # 进度数 57 r_n = 0 # 成功数量 58 e_n = 0 # 错误数量 59 all_n = len(path_list) # 总数 60 for i in path_list: 61 print('*' * 50) 62 if i.strip() != '': 63 print('run path: %s' % i.strip()) 64 rr = copy_and_save_paths(i.strip(), dst_dir) 65 if not rr: 66 print('run fail path: %s' % i.strip()) 67 e_n += 1 68 else: 69 r_n += 1 70 else: 71 nn_n += 1 72 n += 1 73 # print(n) 74 print('run count: %s' % str(round(float(n)/float(all_n) * 100, 2)) + '%') # 处理进度 75 print('run all finish') 76 print('all: %s, none: %s, run: %s, success: %s, error: %s' % (str(all_n), str(nn_n), str(n), str(r_n), str(e_n))) 77 78 79 if __name__ == "__main__": 80 print('args: ', sys.argv) 81 if len(sys.argv) < 3: 82 print('参数缺失') 83 else: 84 print('start run..') 85 # 脚本接收参数 第一个是存有目录路径列表的文件; 第二个是目标路径 86 run_all(sys.argv[1], sys.argv[2]) 87 88 89 # 后台执行示例: nohup python -u /data/tt.py /data/ff.txt /data/test2 >> /data/log.log 2>&1 &
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫