代码如下:
##############################################
# File Name: Miracast_names.py
# Author:wanglong
# mail:wanglong@hikeen.com.cn
# Created Time: 2019 06.03 10:18:01
#============================================
# -*- coding: utf-8 -*-
#coding=utf-8
import os
import re
import sys
path_t = os.getcwd()
pattern = re.compile("\"([^\"]*)\"")
M_name = open(path_t+'/ordertype.config')
for line in M_name:
if "CONFIG_CUSTOMER_ORDERTYPE_NAME=" in line:
order_name = pattern.findall(line)[0];
os.chdir(path_t+'/configs/order')
for parent,dirnames,filenames in os.walk('.'):
for dirname in dirnames:
if os.path.isdir(dirname):
if dirname == order_name:
os.chdir(dirname)
for parent,dirnames,filenames in os.walk('.'):
for filename in filenames:
if filename == "config.h":
Con_name = open('config.h')
for line in Con_name:
if "#define HK_MIRACAST_CUSTOMER_NAME" in line:
CONFIG_Mir = pattern.findall(line)[0]
print(CONFIG_Mir)
os.chdir(path_t+'/aps/initramfs/package_net_miracast_mt7601/tmp')
Mir_name_new = open('test-p2p-nl80211_t.sh','w')
for parent,dirnames,filenames in os.walk('.'):
for filename in filenames:
if filename == "test-p2p-nl80211.sh":
Mir_name = open('test-p2p-nl80211.sh','r')
for line in Mir_name:
if " SEND_SET_CMD \"$WPA_CLI -i $IFNAME SET device_name '" in line:
line_new = " SEND_SET_CMD \"$WPA_CLI -i $IFNAME SET device_name '" + CONFIG_Mir + "($HWADDR)'\""
Mir_name_new.write(line_new)
Mir_name_new.write('\n')
else:
Mir_name_new.write(line)
for parent,dirnames,filenames in os.walk('.'):
for filename in filenames:
if filename in "test-p2p-nl80211.sh":
os.remove(filename)
for parent,dirnames,filenames in os.walk('.'):
for filename in filenames:
if filename in "test-p2p-nl80211_t.sh":
os.rename(filename,"test-p2p-nl80211.sh")
1. shell脚本调用Python脚本:
python test.py $para1 $para2 (带参数)
2. Python脚本中的正则表达式:
pattern = re.compile("\"([^\"]*)\"")
...
CONFIG_Mir = pattern.findall(line)[0]
3. 打开文件时路径最好用绝对路径(下篇介绍os.path.abspath和os.getcwd的区别):
path_t = os.getcwd()
M_name = open(path_t+'/ordertype.config')
4.修改文件名:
os.rename(旧文件名,新文件名)
5.修改文件权限:
os.chmod(path_t+'/aps/initramfs/package_net_miracast_mt7601/tmp/test-p2p-nl80211.sh', stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO)