首页 > 编程语言 >autojs git判断差异python发送的手机上

autojs git判断差异python发送的手机上

时间:2022-11-23 11:12:06浏览次数:50  
标签:git python os prefix autojs changeStr print changes change

#!usr/bin/python
#-*-coding:utf-8-*-
#根据git变化,将变化的文件推送到手机上

import os
import sys
print("文件编码格式:"+ sys.getdefaultencoding())

###############配置变量###############
# 手机项目存储目录
prefix="storage/emulated/0/sdcard/project/"
projectName="XXXX"
# 忽略文件,不向手机发送的文件
gnoreFile=[
    "README.md",
    "compile.py",
    "change.txt",
    "tmp.txt",
    "complate.txt",
    "verifycode.txt",
    ]
############系统变量#######
changeFile="change.txt" #记录变化的文件
tmpFile="tmp.txt"#临时文件
##########################

#上传文件到手机
def uploadPhoneFile(change):
    print("sync {} to {}".format(change,prefix+projectName+"/"+change))
    pushCode ="adb push {} {}".format(change, prefix+projectName+"/"+change)
    os.system(pushCode)
#创建文件夹到手机
def mkdirPhoneFile(change):
    print("sync {} to {}".format(change,prefix+projectName+"/"+change))
    pushCode ="adb shell mkdir -p {}".format(prefix+projectName+"/"+change)
    os.system(pushCode)
#删除手机上的文件
def delletePhoneFile(change):
    print("delete {}".format(prefix+projectName+"/"+change))
    delCode ="adb shell rm {}".format(prefix+projectName+"/"+change)
    os.system(delCode)
#删除手机上的文件夹
def delletePhoneFileDir(change):
    print("delete {}".format(prefix+projectName+"/"+change))
    delCode ="adb shell rm -r {}".format(prefix+projectName+"/"+change)
    os.system(delCode)
#清空文件
def clearFile(name):
    open(name, 'w').close()

#获取git变化并写入到文件
def diffGit():
    diffGit = 'git status --short'
    diff = os.popen(diffGit,'r')
    diffStrs = diff.buffer.readlines()
    clearFile(tmpFile)
    ft = open(tmpFile,"a+",encoding='utf8')
    for c in diffStrs:
        change = c.decode(encoding='utf8').replace("\n", "")
        if "../" not in change:
            if len(change) > 0:
                ft.write(change+"\n")
                changes = change.split()
                if len(changes) ==2 :
                    changeStr = changes[1]
                    if changeStr not in gnoreFile:
                        print(change.split()[0]+"---"+change)
                        if changes[0] == "M" or changes[0] == "??":
                            print("新增或修改文件:"+changeStr)
                            if os.path.isdir(changeStr):
                                mkdirPhoneFile(changeStr)
                                for root, dirs, files in os.walk(changeStr):
                                    for f in files:
                                        print(changeStr+f)
                                        ft.write(changes[0]+" "+changeStr+f+"\n")
                                        uploadPhoneFile(changeStr+f)
                            else:    
                                uploadPhoneFile(changeStr)
                        elif changes[0] == "D" :
                            print("删除文件:"+changeStr)
                            delletePhoneFile(changeStr)

    ft.close()
#对比上次同步结果
def writeChangeContent():
    fch = open(changeFile,"r",encoding='utf8')
    ftm = open(tmpFile,"r",encoding='utf8')
    fclines = ftm.readlines()
    for change in fch.readlines():
        if change not in fclines:
            print("-------上次变化,这次没有变化--------{}".format(change))
            changes = change.split()
            changeStr = changes[1]
            if changes[0] == "M":
                uploadPhoneFile(changeStr)
            elif changes[0] == "??":
                delletePhoneFileDir(changeStr)
            elif changes[0] == "D" :  
                uploadPhoneFile(changeStr)
            
    fch.close()
    ftm.close()
#将这次结果放到变化文件
def copyStrToFile():
    file1 = open(tmpFile,"r",encoding='utf8')
    file2 = open(changeFile,"w",encoding='utf8')
    s = file1.read()
    w = file2.write(s)
    file1.close()
    file2.close()


diffGit()
writeChangeContent()
copyStrToFile()
#os.system("adb pull /storage/emulated/0/sdcard/XXX_tmp/")

  

标签:git,python,os,prefix,autojs,changeStr,print,changes,change
From: https://www.cnblogs.com/lambertwe/p/16917622.html

相关文章

  • 阿瑟的爱心,python+django+html
    最近女朋友过生日,非要一个阿瑟的爱心,不知道这所谓的浪漫到底浪漫到哪里了,还是被脑残剧看坏了脑子(嘘!!)反正就是一顿操作吧,使用python+django的框架,开发了一个网页,最主要的还......
  • [oeasy]python0019_ 打包和解包_struct_pack_unpack
    ​ 打包和解包回忆上次内容ASCII由这样几类字符构成英文大写字符英文小写字符数字符号电报时代对于英文、数字的编码使用的是摩斯电码​编辑这摩......
  • go-Typora上传图片-Custom Command上传图片到Gitee
    概述编写程序,读取图片路径=>文件内容转换成base64=>上传文件=>返回文件url测试APIGiteeAPI文档新建文件POST:https://gitee.com/api/v5/repos/{owner}/{repo......
  • c++ 调用 python 2.7
    本来想调用python3.10的,但一直安装不成功,先记录一下python2.7。先上代码:#include<iostream>usingnamespacestd;#include"Python.h"intmain(intargc,cha......
  • 【Python小随笔】最近12个月的日期
    defknn_12():"""最近12个月如果想要指定月份只要修改cur_month参数即可"""month_list=[]now_time=datetime.datetime.now......
  • Python 深度学习目标检测评价指标
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 如何修改Git Bash默认打开之后的路径
    1、右键选择并进入GitBash的属性栏。2、设置对应属性值,注意要删掉“目标”里的"--cd-to-home",否则默认进入不了所设置的起始位置,如下:  3、重新启动GitBash,即进入......
  • git基本操作
    本文主要记录了Git常用的一些命令,和Git基本使用教学,包括了版本库的创建、代码提交、推送、拉取、版本回退、撤销等操作。(摘录自https://www.lixueduan.com/posts/git/02-gi......
  • win10 git bash 设置别名
    方法1:通过 profile 文件设置用编辑器打开 C:\ProgramFiles\Git\etc\profile,在结尾增加:aliasg='git'aliasgcm='gitcommit-m'aliasgcam='gitcommit-a-m'ali......
  • python实现学员管理系统
    """1.学员管理系统系统功能界面1-添加学员2-删除学员3-修改学员信息4-查询学员信息5-退出系统6-显示全部......