常用Python文件处理脚本

  1. 简介
  2. 引用的库
  3. 利用json配置需要控制的文件或者文件夹
  4. 参数读取
  5. 读取Config配置文件(json)
  6. 删除目录文件或者文件夹
  7. 复制文件或者文件夹到指定目录

简介

Unity打包经常会用一些文件的复制粘贴到一些文件到自己指定的SDK目录,一开始我们使用的是bat脚本,但是笔者发现这个脚本没办法在打包机(MAC)上使用,于是笔者便想到了python脚本来实现。

引用的库

import sys
import os
import json
import shutil

利用json配置需要控制的文件或者文件夹

{
    "remdir":[
        "data/libs/",
        "data/src/main/assets/"
    
    ],
    "copydir":[
        "../xarchive/android/unityLibrary/libs/",
        "../xarchive/android/unityLibrary/
    ]
}

参数读取

if (len(sys.argv) > 1):
    isPAD = sys.argv[1]

if(isPAD == "0")
    ...

命令执行python脚本的时候通过读取sys.argv便可以读取到自己传入的参数,这里需要注意的是读取的都是字符串,所以笔者在读数字0的时候需要用到**”0”**。

读取Config配置文件(json)

configFilePath = "config.json";

with open(configFilePath,'r') as load_f:
    load_dict = json.load(load_f)

删除目录文件或者文件夹

def path_remove(removepath):
    for remdirPath in removepath:
        try:
            if os.path.exists(remdirPath):
                if os.path.isdir(remdirPath):
                    shutil.rmtree(remdirPath)
                else:
                    os.remove(remdirPath)
                print("Remove Success: "+remdirPath)
        except OSError as e:
            print("Error: %s : %s" % (remdirPath, e.strerror))

复制文件或者文件夹到指定目录

def proc_copy(old_path, new_path):
    if os.path.exists(old_path):
        if os.path.isdir(old_path):
            shutil.copytree(old_path, new_path)
        elif os.path.isfile(old_path):
            shutil.copyfile(old_path, new_path)
        print("Copy Success: " + old_path)
    else:
        print("NOT FOUND: {}".format(old_path))

def path_copy(copydir, pastedir):
    for index in range(len(copydir)):
        if os.path.exists(pastedir[index]):
            if os.path.isdir(pastedir[index]):
                shutil.rmtree(pastedir[index])
        proc_copy(copydir[index],pastedir[index])

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 841774407@qq.com

×

喜欢就点赞,疼爱就打赏