查找XML中的节点信息
## 导入模块
from xml.etree import ElementTree
## 获取root节点
root=ElementTree.parse("xml文件的路径")
## 获取特定的节点内容
need_dir=root.find("common/need_dir").text
遍历xml中某个节点下所有的子节点信息
## 导入模块
from xml.etree import ElementTree
## 获取root节点
protRoot=ElementTree.parse(path_file)
## 获取所有的protocol节点信息
prots=protRoot.findall("proto")
## 获取protocol节点下所有的子节点信息
for prot in prots:
protName=prot.get("name") #获取protocol的属性name的值
instat=prot.find("stat").text #获取protocol的子节点instat的内容
模糊匹配某路径下所有满足要求的文件
## 导入模块
import glob
## 找出符合要求的所有文件
proc=glob.glob("/home/aye/*_abc_*.csv")
获取某路径下所有的文件夹名称
## 导入模块
import os
## 获取需要指定路径下所有的文件夹
def getDir(path):
current_files=os.listdir(path)
for file_name in current_files:
full_file_name=os.path.join(path,file_name)
if os.path.isdir(full_file_name):
all_business.append(full_file_name)
return all_business
多线程
## 导出模块
import threading
## 实现方法
class Business(threading.Thread):
def __init__(self,bcp_dir, thread_name):
threading.Thread.__init__(self,name=thread_name)
self.thread_name=thread_name
self.bcp_dir=bcp_dir
def run(self):
print "执行线程的函数"
postgres数据库操作
## 导入模块
import psycopg2
## 连接postgres数据库,并执行SQL
pgsql = psycopg2.connect(self.db_conn)
cur = pgsql.cursor()
cmd = "copy %s(%s) from '%s' delimiter '\\t' NULL '';"%(self.tabName,self.cols,bcpFile)
cur.execute(cmd)
res=cur.fetchone() ## 如果是select语句,会返回查询结果
pgsql.commit()
cur.close()
pgsql.close()
例子
pgsql=psycopg2.connect(db_conn)
cur=pgsql.cursor()
cmd="SELECT 1"
cur.execute(cmd)
res=cur.fetchone()
data_type=res[0]
cur.close()
pgsql.close()
python调用shell
## 导入模块
import os
## 调用shell成功返回0,失败返回1
os.system(cmd)
## 调用shell返回执行的结果
os.popen(cmd).read()
加载环境变量
## 导入模块
import subprocess
## 调用语句
subprocess.Popen("source ../etc/env.sh",shell=True)
file写入
## 导入模块
## 调用方法
file=open("文件名",'w')
file.write("写入的内容")
file.close()
按行读取文件
## 导入模块
## 调用方法
logname='/home/test/f.txt'
f=open(logname,"r")
while True:
line=f.readline()
line.strip("\n")
if not line:
break
f.close()
获取当期路径
## 导入模块
import os
## 调用方法
curr_dir=os.getcwd()
接收脚本传入参数
导入模块
import sys
调用方法
logname=sys.argv[1]
字典操作
## 导入模块
## 调用方法
succ={}
fail={}
## 判断字典的key是不是1
if 1 not in succ.keys():
succ[1]=0
fail[1]=0
给字典的key排序后打印
for item in sorted(succ.keys()):
print str(succ[item])
print str(fail[item])
文档信息
- 本文作者:fei
- 本文链接:https://ayee1616166.github.io/2016/11/03/Python%E4%B9%8B%E5%9F%BA%E7%A1%80%E7%AC%94%E8%AE%B0/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)