Python脚本备份
#!/usr/bin/python3
# -*- coding:utf- -*- # 保证源程序可以输入汉字 print bool([]) # 任何为零的数字或空集(空列表、空元组和空字典等)均为False
radius = input(u"输入半径: ");
radius_float = float(radius);
area=radius_float***3.1415926; # **是平方运算,pow()也可以执行平方运算
print u'面积:%f'%(area)
# coding:utf-8
import os
import re
import shutil
from subprocess import Popen, PIPE safe_imgs_path = os.path.dirname(__file__)
destination_path = safe_imgs_path.split('GlobalRobot')[0] + 'GlobalApp'
proj_path = destination_path + '/GlobalApp.xcodeproj/project.pbxproj' def getBundleId():
pattern = 'PRODUCT_BUNDLE_IDENTIFIER = (.*);'
bundle_id = None
with open(proj_path) as f:
s = ''.join(f.readlines())
res = re.findall(pattern, s)
if len(res):
bundle_id = res[0]
f.close()
return bundle_id def handle_safeImage():
bundle_id = getBundleId()
if bundle_id:
cmd = 'cp {img_path}/{img_name}.jpg {des_path}/{des_name}.jpg'.format(img_path=safe_imgs_path, img_name=bundle_id,
des_path=destination_path,
des_name='yw_1222_07e8')
Popen(cmd, shell=True) def change_robotCode():
bundle_id = getBundleId();
normal_name='a1myR6pZui3';
test_name='a1wYaPBqf6g';
print bundle_id;
root_path=safe_imgs_path.split('GlobalRobot')[0];
logidPath = root_path + 'GlobalRobot/GLBRobot/GLBConfig/GLBRobotConfig.bundle/GLBRobotLogicIdMap.json'
router_path = root_path + 'GlobalRobot/GLBRobot/GLBConfig/GLBRobotConfig.bundle/GLBRobotRouteTable.json'
if bundle_id == 'com.eco.global.app':
changeDX5ClassName(logidPath,normal_name,test_name)
changeDX5ClassName(router_path,normal_name,test_name)
elif bundle_id =='com.vivien.demo':
changeDX5ClassName(logidPath,test_name,normal_name)
changeDX5ClassName(router_path, test_name, normal_name)
return; def changeDX5ClassName(fileName,toName="a1myR6pZui3",from_name='a1wYaPBqf6g'):
print 'toName'+toName+' ,fromName:'+from_name ;
file_path = fileName;
backup_path = file_path + '.bak'
if not os.path.exists(backup_path):
shutil.copy2(file_path, backup_path)
with open(file_path, mode='r') as fr, open(backup_path, mode='w') as fw:
for line in fr:
re_sub_list = re.sub(from_name, toName, line) # 这里用re.sub进行替换后放入 re_sub_list中
print('re_sub_list'+re_sub_list);
fw.writelines(re_sub_list) # 将列表中的每一行进行写入。writelines是将序列对象中的每一行进行写入。
os.remove(file_path);
os.rename(backup_path, file_path); if __name__ == '__main__':
print "==============================开始替换安全图片=============================="
handle_safeImage()
print "==============================完成替换安全图片=============================="
print "==============================开始更换DX5 Class=============================="
change_robotCode()
print "==============================完成更换DX5 Class=============================="
Python脚本备份的更多相关文章
- python 脚本备份 mysql 数据库到 OSS
脚本如下: #!/usr/bin/python ########################################################### ################ ...
- python 脚本备份mssql数据库并删除数据库
一.实现脚本 # -*- coding=utf-8 -*- import pyodbc from datetime import datetime import pymssql import os i ...
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- 除了binlog2sql工具外,使用python脚本闪回数据(数据库误操作)
利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线 ...
- MySQL利用binlog恢复误操作数据(python脚本)
在人工手动进行一些数据库写操作的时候(比方说数据订正),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线上或者测试环境误操作导致数据被删除或者更新 ...
- zabbix 调用python脚本监控 磁盘剩余空间(创建模版,创建监控项,创建触发器)
主要 记录一下 使用zabbix 自己创建模版.监控项.触发器,并调用python脚本. 需求: 监控备份机磁盘剩余空间(windows系统) 一.安装zabbix_agent 比较简单 修改配置文 ...
- crontab定时运行python脚本访问MySQL遇到问题
最近写了一个python脚本来定时备份MySQL数据库.具体实现如下: 1)python脚本中使用os.system("mysqldump -h127.0.0.1 -uroot -ppass ...
- 自己来编写一份 Python 脚本 第一版
解决问题 我们已经探索了 Python 语言中的许多部分,现在我们将通过设计并编写一款程序来了解如何把这些部分组合到一起.这些程序一定是能做到一些有用的事情.这节的Python教程就是教大家方法去学习 ...
- 备份文件的python脚本(转)
作用:将目录备份到其他路径.实际效果:假设给定目录"/media/data/programmer/project/python" ,备份路径"/home/diegoyun ...
随机推荐
- 理解es6 中 arrow function的this
箭头函数相当于定义时候,普通函数.bind(this)箭头函数根本没有自己的this,导致内部的this就是定义时候的外层代码块中的this.外层代码块中的this,则取决于执行时候环境上下文cont ...
- react高阶组件的使用
为了提高代码的复用在react中我们可以使用高阶组件 1.添加高阶组件 高阶组件主要代码模板HOC.js export default (WrappedComponent) => { retur ...
- python之元组
一.元组定义 元组(tuple)使用小括号()来定义,它是不可变数据类型,它的元素不可变,但元素的元素是可变的,比如tuple中一个元素为list列表时,list中的元素是可变的 # 在定义tuple ...
- Numpy增加一列,指定概率指定参数
这里主要应用到numpy.random.choice 可以根据需求,比如增加一列,A B C 为该列数据,随机概率生成 详见代码 import numpy as np import pandas as ...
- Xposed免重启调试工具类
直接放代码 package com.xirtam.hello; import android.app.Application; import android.content.Context; impo ...
- 001-zookeeper 简介-paxos算法,zk简介,特点
一.概述 大数据体系概述 1.1.什么是zookeeper 是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务 它包含一个简单的原语集,分布式应用程序可以基于他实现同步服务,配 ...
- vs2017无法安装
vs2017无法安装,无错误提示和日志 参考:https://blog.csdn.net/jq0123/article/details/83987686 但是解决方法不一样,运行安装程序没有提示,需要 ...
- 【Idea】Intellij Idea debug 模式如果发现异常,即添加异常断点在发生异常处
前用eclipse的时候,可以根据所抛出的异常进行调试,比如:出现了空指针异常,我想知道是哪一行抛出的,在eclipse中我只需在debug模式下把空指针异常这个名字设置进去,当遇到空指针异常时,ec ...
- Windows SFTP 的安装
用于Windows系统的免费SFTP服务器-Free SFTP Servers 前不久,有人问我:“怎么从 Linux 系统传文件到 Windows 服务器,不能用 FTP 协议.” 文件数量不大.用 ...
- 面试 Java 高级后端开发,要准备哪些知识点?
其实公司肯花时间让你去面试,前提条件一定是通过你的简历,一定发现了你和公司的匹配点,也就是说,一定是有录用意向的. 在技术面试的时间段里(最长1个小时),你如果能展现你的优势那是最好的,但如果你做不到 ...