Python脚本连接数据库读取特定字段保存在文件中
从Script表中取出Description字段作为文件名,并按协议将脚本归位相同的文件夹,取TestScript字段的内容写入文件
import MySQLdb
import sys
import os
from lxml import etree IP=sys.argv[1]
#IP="10.0.20.252"
DIR="ScriptsDir"
try:
print "connnect to database...."
db=MySQLdb.connect(IP,"root","Free-Wi11","acheron_db")
except Exception as e:
print e.message
print "Can't connect to " + IP
exit(1) print "Done...."
print "Ready to read data from DataBase......"
db_cursor=db.cursor() sql="select Description,TestScript from Script where Class='System'"
db_cursor.execute(sql)
content=db_cursor.fetchall()
if os.path.exists(DIR):
os.system("RD /S /Q " + DIR)
os.system("mkdir " + DIR)
for item in content:
file_name=item[0]
if len(file_name)==0:
print item
continue directory=item[0].split(".")[0]
if len(directory)==0:
print item
continue
if not os.path.exists(DIR+"\\"+directory):
os.system("mkdir " + DIR + "\\"+directory)
try:
f=open(DIR+"\\"+directory+"\\"+file_name+".xml","w")
root=etree.fromstring(item[1])
f.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
f.write(etree.tostring(root))
f.close()
except Exception as e:
print e.message
print "Failed,please retry...."
break;
print "See Scripts data file in '" + DIR + "'"
print "Done"
执行结果:

从10.0.10.33上的mybatis数据库中将user表中的数据取出并存到本地user.txt文件夹下
看下user表:

import MySQLdb #IP=sys.argv[1]
IP="10.0.10.33"
FileName="user.txt"
try:
print "connnect to database...."
db=MySQLdb.connect(IP,"root","","mybatis")
except Exception as e:
print e.message
print "Can't connect to " + IP
exit(1) print "Done...."
print "Ready to read data from DataBase......"
db_cursor=db.cursor()
sql="select * from users"
db_cursor.execute(sql)
content=db_cursor.fetchall()
f=open(FileName,"w")
for item in content:
try:
# root=etree.fromstring(item[1])
f.write("id: " + str(item[0]) +" name: " + item[1] + " age:" + str(item[2]))
f.write("\r")
except Exception as e:
print e.message
print "Failed,please retry......"
break
f.close()
print "See user list in '" + FileName + "'"
print "Done"
执行结果:
C:\Python27\python.exe G:/web2py/web2py_win/web2py/applications/pythonMySQLdb/pythonMySQL.py
connnect to database....
Done....
Ready to read data from DataBase......
See user list in 'user.txt'
Done Process finished with exit code 0

Python脚本连接数据库读取特定字段保存在文件中的更多相关文章
- 【Python语言】--Crontab结合Python脚本实现将日志每天写入到文件中
一.前述 实际工作中将Python脚本每天定时写入到日志文件中的使用场景还是蛮多的,有很多种方法可以实现这种效果.本文选择一种方式实现,特将实现细节做如下分享,不当之处烦请指正. 二.具体 1.pyt ...
- 如何优雅地将printf的打印保存在文件中?
我们都知道,一般使用printf的打印都会直接打印在终端,如果想要保存在文件里呢?我想你可能想到的是重定向.例如: $ program > result.txt 这样printf的输出就存储在r ...
- 利用POI抽取word中的图片并保存在文件中
利用POI抽取word中的图片并保存在文件中 poi.apache.org/hwpf/quick-guide.html 1.抽取word doc中的图片 package parse; import j ...
- Python配合BeautifulSoup读取网络图片并保存在本地
本例为Python配合BeautifulSoup读取网络图片,并保存在本地. BeautifulSoup可代替正则表达式,更好地解析Html文本,获取其中的指定内容,如Tag.Property等 # ...
- win下python脚本以unix风格换行保存将会报错为编码问题 SyntaxError: encoding problem:gbk
utf-8与gbk编码都报错 从别人的github拉下来一个python脚本. 直接运行,python报错如下: File ".\drag_files_do_event.py", ...
- 使用2种python脚本工具将2个txt文档中的文字进行比较,并计算出Corr, WER正确率,准确率
一.准备: linux服务器,src2mlf.py rec2mlf.py HResults文件,1份源文件和1份需要对比的文件.文件放置于本人云盘 二.使用方法: 1. 对比工具 HResul ...
- 使用 python 把一个文件生成 C 语言中的数组并保存到头文件中
(一)要做什么 之前有这么一个需求,是要把一个二进制文件里面的数据,转换成 C 代码里面的数组,可以看之前的一篇文章: NUC980 运行 RT-Thread 驱动 SPI 接口 OLED 播放 ba ...
- 简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)
直接执行的python代码ipynb2pdf.py 主要思路.将ipynb文件转成tex文件,然后使用latex编译成pdf.由于latex默认转换不显示中文,需要向tex文件中添加相关中文包. 依赖 ...
- C0302 将一个代码块中的内容保存在文件中, 查看一个rpm包是否可以安装
#!/bin/bash # 这个脚本是用来描述和确认是否可以安装一个rpm包 # 在一个文件中保存输出 SUCCESS=0 E_NOARGS=65 if [ -z "$1" ] t ...
随机推荐
- C语言 · 复数四则运算
算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符 ...
- 网页抓取信息(php正則表達式、php操作excel)
1.问题描写叙述 实现对固定网页上自己须要的信息抓取,以表格形式存储. 我是拿wustoj上的一个排行榜来练习的,地址:wustoj 2.思路 网页自己就简单学习了一下php,刚好用它来做点事情吧,我 ...
- php 的rabbitmq 扩展模块amqp安装
php 的rabbitmq 扩展模块amqp安装 2017年10月08日 10:34:22 阅读数:240 使用PHP开发,要使用中间队列rabbitmq, 必须要安装PHP的扩展模块amqp, 服务 ...
- js生成唯一的uuid
---恢复内容开始--- 在做项目的时候出现这样的一种情况,需要动态生成唯一的uuid,刚开始我的思路是这样的,我可以根据时间来做,然后出现了下面的思路: var uuid = "cms&q ...
- struts2 OGNL ValueStack概念理解 # % $ 的区别
http://blog.csdn.net/tjujacob/article/details/8117659 —————————————————————————————————————————————— ...
- boost 互斥体和锁
1.共享资源是一个自动锁住的房间,互斥体是钥匙,进入房间必须取钥匙,离开房间应该还钥匙.这就对应着互斥体的lock(取钥匙)和unlock(还钥匙). 2.考虑下面的场景:还钥匙的时候出现异常,会发生 ...
- 采用预取(Prefetch)来加速你的网站(转)
一.DNS预取 如果你像我一样想在网站上有一个Twitter小程序,还有网站分析,再也许一些网页字体,那么你必须要链接到一些其它域名,这意味着你将不得不引发DNS查询.我的建议通常是,不要还没有先适当 ...
- error C2678: 二进制“+”: 没有找到接受“const char [22]”类型的左操作数的运算符(或没有可接受的转换)没有与这些操作数匹配的“+”运算符
错误:没有与这些操作数匹配的“+”运算符,操作数类型为const char [20]+CString 分析原因:其提示操作数类型为const char [20]+CString 可见是类型有问题 故加 ...
- sap screen design
定义屏幕: SAP 系统中的屏幕包含: 标准屏幕: 选择屏幕: 列表输出屏幕: 1. 标准屏幕必须隶属于一个类型为 L, M 或 F 的ABAP ...
- Hadoop1.2.1 HDFS原理
基本以图片的形式呈现给大家: .