获取多个模型文件,然后对每个文件进行 cmd 命令 的压缩,然后从新导出到新的目录中。
此代码只是临时使用,并不完善,一些代码和逻辑也不科学。本文的目的主要为了个人进行记录,方便后期黏贴使用,如有不近人意的地方请见谅。
import cmd, sys
from turtle import *
import os
import shutil
import asyncio
# 想试试异步删除文件,但好像没成功。目前能用就没继续完善了。
async def del_dic(processed_path):
# 查看是否有目录存在,有的话,先删除(包括里面的所有文件),然后再创建新的。
isExists=os.path.exists(processed_path)
if isExists:
shutil.rmtree(processed_path)
os.makedirs(processed_path)
# 把glb模型文件进行 drc压缩处理
async def glb_to_drc(file_dir):
# 压缩后的文件需要存放的目录
processed_path = file_dir + "/"+"Processed"
# 获取这个路径下所有的文件和文件夹
files = os.listdir(file_dir)
task = asyncio.create_task(del_dic(processed_path))
await task
glb_length = 0
for file_name in files:
file_name_only, file_extension = os.path.splitext(file_name)
if(file_extension == '.glb'):
# 执行 CMD命令
cmd = "gltf-pipeline -d -i %s -o %s"%((file_dir+'/'+file_name),(processed_path+'/'+file_name_only+'-processed'+file_extension))
os.system(cmd)
glb_length+=1
print("%s glb 模型数量 %s "%(file_dir , glb_length))
async def files_pos():
await glb_to_drc('/Users/edwinlee/Downloads/xxxxxx')
await glb_to_drc('/Users/edwinlee/Downloads/xxxxxx2')
await glb_to_drc('/Users/edwinlee/Downloads/xxxxxx3')
await glb_to_drc('/Users/edwinlee/Downloads/xxxxxx4')
asyncio.run(files_pos())