python怎么处理mysql dmp文件

python怎么处理mysql dmp文件,第1张

在Windows平台上安装mysql模块用于Python开发

用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示。下边是打包了32与64版本。 

MySQL-python-1.2.3.win32-py2.7.exe 

MySQL-python-1.2.3.win-amd64-py2.7.exe

实例 1、取得 MYSQL 的版本

# -*- coding: UTF-8 -*-

#安装 MYSQL DB for python

import MySQLdb as mdb

con = None

try:

#连接 mysql 的方法: connect('ip','user','password','dbname')

con = mdb.connect('localhost', 'root','root', 'test')

#所有的查询,都在连接 con 的一个模块 cursor 上面运行的

cur = con.cursor()

#执行一个查询

cur.execute("SELECT VERSION()")

#取得上个查察液链询的结果,是单个结果

data = cur.fetchone()

print "Database version : %s " % data

finally:

if con:

#无论如何,连接记得关闭

con.close()

实例 2、创建一个表并且插入数据

import MySQLdb as mdb

import sys

#将 con 设定为全局连接

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

#获取连接的 cursor,只有埋罩获取了 cursor,我们才能进行各种 *** 作

cur = con.cursor()

#创建一个数据表 writers(id,name)

cur.execute("CREATE TABLE IF NOT EXISTS \

Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")

#以下插入了 5 条数据

cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")

cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")

cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")

cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")

cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

实例 3、 python 使用 slect 获取 mysql 的数据并遍历

import MySQLdb as mdb

import sys

#连接 mysql,获取连接的对象

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

#仍然是,第一步要获取连接的 cursor 对象,用于执行查询

cur = con.cursor()

#类似于其他语言的 query 函数, execute 是 python 中的执行查询函数

cur.execute("SELECT * FROM Writers")

#使用 fetchall 函数,将结果集(多维元组)存入 rows 里面

rows = cur.fetchall()

#依次遍历结果集,发现每个元素,就败孙是表中的一条记录,用一个元组来显示

for row in rows:

print row

运行结果:

(1L, ‘Jack London')

(2L, ‘Honore de Balzac')

(3L, ‘Lion Feuchtwanger')

(4L, ‘Emile Zola')

(5L, ‘Truman Capote')

上面的代码,用来将所有的结果取出,不过打印的时候是每行一个元祖打印,现在我们使用方法,取出其中的单个数据:

import MySQLdb as mdb

import sys

#获取 mysql 的链接对象

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

#获取执行查询的对象

cur = con.cursor()

#执行那个查询,这里用的是 select 语句

cur.execute("SELECT * FROM Writers")

#使用 cur.rowcount 获取结果集的条数

numrows = int(cur.rowcount)

#循环 numrows 次,每次取出一行数据

for i in range(numrows):

#每次取出一行,放到 row 中,这是一个元组(id,name)

row = cur.fetchone()

#直接输出两个元素

print row[0], row[1]

运行结果:

1 Jack London

2 Honore de Balzac

3 Lion Feuchtwanger

4 Emile Zola

5 Truman Capote

实例 4、使用字典 cursor 取得结果集(可以使用表字段名字访问值)

import MySQLdb as mdb

import sys

#获得 mysql 查询的链接对象

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

#获取连接上的字典 cursor,注意获取的方法,

#每一个 cursor 其实都是 cursor 的子类

cur = con.cursor(mdb.cursors.DictCursor)

#执行语句不变

cur.execute("SELECT * FROM Writers")

#获取数据方法不变

rows = cur.fetchall()

#遍历数据也不变(比上一个更直接一点)

for row in rows:

#这里,可以使用键值对的方法,由键名字来获取数据

print "%s %s" % (row["Id"], row["Name"])

实例 5、获取单个表的字段名和信息的方法

import MySQLdb as mdb

import sys

#获取数据库的链接对象

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

#获取普通的查询 cursor

cur = con.cursor()

cur.execute("SELECT * FROM Writers")

rows = cur.fetchall()

#获取连接对象的描述信息

desc = cur.description

print 'cur.description:',desc

#打印表头,就是字段名字

print "%s %3s" % (desc[0][0], desc[1][0])

for row in rows:

#打印结果

print "%2s %3s" % row

运行结果:

cur.description: ((‘Id', 3, 1, 11, 11, 0, 0), (‘Name', 253, 17, 25, 25, 0, 1))

Id Name

1 Jack London

2 Honore de Balzac

3 Lion Feuchtwanger

4 Emile Zola

5 Truman Capote

实例 6、使用 Prepared statements 执行查询(更安全方便)

import MySQLdb as mdb

import sys

con = mdb.connect('localhost', 'root', 'root', 'test')

with con:

cur = con.cursor()

#我们看到,这里可以通过写一个可以组装的 sql 语句来进行

cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",

("Guy de Maupasant", "4"))

#使用 cur.rowcount 获取影响了多少行

print "Number of rows updated: %d" % cur.rowcount

结果:

Number of rows updated: 1

实例 7、把图片用二进制存入 MYSQL

有人喜欢把图片存入 MYSQL(这种做法貌似很少吧),我看大部分的程序,图片都是存放在服务器上的文件,数据库中存的只是图片的地址而已,不过 MYSQL 是支持把图片存入数据库的,也相应的有一个专门的字段 BLOB (Binary Large Object),即较大的二进制对象字段,请看如下程序,注意测试图片自己随便找一个,地址要正确: 

首先,在数据库中创建一个表,用于存放图片:

复制代码代码如下:

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB)

然后运行如下 PYTHON 代码进行:

import MySQLdb as mdb

import sys

try:

#用读文件模式打开图片

fin = open("../web.jpg")

#将文本读入 img 对象中

img = fin.read()

#关闭文件

fin.close()

except IOError, e:

#如果出错,打印错误信息

print "Error %d: %s" % (e.args[0],e.args[1])

sys.exit(1)

try:

#链接 mysql,获取对象

conn = mdb.connect(host='localhost',user='root',passwd='root',

db='test')

#获取执行 cursor

cursor = conn.cursor()

#直接将数据作为字符串,插入数据库

cursor.execute("INSERT INTO Images SET Data='%s'" %

mdb.escape_string(img))

#提交数据

conn.commit()

#提交之后,再关闭 cursor 和链接

cursor.close()

conn.close()

except mdb.Error, e:

#若出现异常,打印信息

print "Error %d: %s" % (e.args[0],e.args[1])

sys.exit(1)

实例 8、从数据库中把图片读出来

import MySQLdb as mdb

import sys

try:

#连接 mysql,获取连接的对象

conn = mdb.connect('localhost', 'root', 'root', 'test')

cursor = conn.cursor()

#执行查询该图片字段的 SQL

cursor.execute("SELECT Data FROM Images LIMIT 1")

#使用二进制写文件的方法,打开一个图片文件,若不存在则自动创建

fout = open('image.png','wb')

#直接将数据如文件

fout.write(cursor.fetchone()[0])

#关闭写入的文件

fout.close()

#释放查询数据的资源

cursor.close()

conn.close()

except IOError, e:

#捕获 IO 的异常 ,主要是文件写入会发生错误

print "Error %d: %s" % (e.args[0],e.args[1])

sys.exit(1)

实例 9、使用 Transaction 即事务(手动提交,自动回滚)

import MySQLdb as mdb

import sys

try:

#连接 mysql,获取连接的对象

conn = mdb.connect('localhost', 'root', 'root', 'test')

cursor = conn.cursor()

#如果某个数据库支持事务,会自动开启

#这里用的是 MYSQL,所以会自动开启事务(若是 MYISM 引擎则不会)

cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",

("Leo Tolstoy", "1"))

cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",

("Boris Pasternak", "2"))

cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",

("Leonid Leonov", "3"))

#事务的特性 1、原子性的手动提交

conn.commit()

cursor.close()

conn.close()

except mdb.Error, e:

#如果出现了错误,那么可以回滚,就是上面的三条语句要么执行,要么都不执行

conn.rollback()

print "Error %d: %s" % (e.args[0],e.args[1])

结果: 

1、因为不存在 writer 表( SQL 第三条语句),所以出现错误:Error 1146: Table ‘test.writer' doesn't exist 

2、出现错误,出发异常处理, 3 条语句的前两条会自动变成了没有执行,结果不变 

3、如果本代码放到一个 MyISAM 引擎表,前两句会执行,第三句不会;如果是 INNDB 引擎,则都不会执行。

“我们都有一种偶然而生的感觉,觉得我们所说所做的是很久以前所说所做的事情,大腔陆觉得我们很久以前曾被同样的面孔,同样的事物,同样的环境围绕,觉得我们很清楚再往下去要说些什么,仿佛我们突然记起这一切一样,我一生中,再也没有比他说那番话之前对这种神秘现象感受得更为深刻的了。”

--狄更斯《大卫科波菲尔》

生活中我们或多或少地有这样三种经历:1.某种场景好像在何时经历过。2.某种感觉好像在何时有过。3.某个地方好像在何时去过。总而言之,这3种感觉在心里学上统称为“既视感”(Déjà vu,法语,意思为“曾经看过”),据统计,70%的人在一生中至少经历过1次既视感。法国生理学家艾米利·波拉克(Emile Bolirac)在1867年的著作《精神科学的未来》(The Future of Psychic Sciences)中第一次定义了这种现象,并且将其命名为“既视感”。

1. 某种场景好像在何时经历过。

这是最常见的一种情况,特点是感觉强烈,细节清晰,不仅仅是视觉,连听觉,味觉,嗅觉,触觉以及周围的一切一切,都好像是过去某个时刻的copy.就如同过去某个事件A被你遗忘,然后突然想起来那样,但是实际上,并不是你恢复了什么记忆,因为这种场景一般很短,只有几秒至几十秒。

2. 某种感觉好像在何时有过。

这种感觉与场景经历所不同的是,你所经历的不再是场景或者环境或者动作,而是某种感觉,而无论这种感觉是愉悦还是郁闷,都会有一种“久别”这种感觉的经历,所以带给你的首先是惊讶,然后才是这种感觉所能带给你的影响。

3. 某个地方好像在何时去过。

这种感觉的经历者是最少的,具体表现为一个人到达某个陌生的从未去过的地方时,感觉周围的环境却是如此熟悉,对周围的细节了如指掌,仿佛生活在这个环境中很长时间。

首先有一点可以确定,当你觉得某个事情发生之前,大脑里面已经有了这个事件的相关记录,无论它是不是确实发生过,并且发生在你自己身上。这就好像你复制一个同名文件到一个文件夹目录下,系统会提示你这个文件已经存在,是否覆盖一样,无论这个文件是你以前自己创建的或者是来源于其他途径,它确实存在于你的大脑硬盘之上了。

所以,既视感并非错觉或者幻觉,它确实是你记忆库里面应该存在的东西。

可如果我们没有经历过那些,或者说主观上认为我们没有经历过那些事情,记忆库里面就不应该有这些,那为什么又会有既视感的存在呢?

一,梦境的碎片

很多人感觉到,他们的既视感有点像是以前某个梦境的碎片,尤其是一个人第一次产生既视感这种感觉时,和做梦的感觉非常的相似,就好像回忆起以前一个时间久远被遗忘的梦,这样的解释也许有一点点道理,但是从逻辑上是讲不通的,那就是,为什么我们以前会做一个与未来场景有关的梦呢?很多的细节都被一一重现,如此吻合的梦,是无法用概率来解释的,而且梦重复的一般是你经历过的场景,他不能够预示未来,你也不会梦见你从未见过的素材,事实上,你从来没有做过也不可能做过这样的梦。

二,宗教,超自然的神谕

所谓神谕,可以说就是这样一种既视感,通过一些超自然地力量,把“未来的记忆资料”灌输到大脑中,而所谓先知的人,就是可以自由调用这些资料的人,并非是先知经历了未来,而是未来的资料如同在大脑中放电影一样,好像让人经历了未来。

三,最着调的解释:大脑传输延迟

根据脑神经专家做出的“传输延迟论”,是解释既视感的主要理论,被大多数人所接受,这个理论的主要内容是:把信息放入大脑的不是别人也不是什么超自然力量,而是我们自己,因为你的既视感所感受到的事件,很可能就发生在0.1秒以前。

从大脑结构来看,位于大脑左半球的颞叶部是一个资料汇总中心,它会排列我们获得信息的时间顺序,当某个器官(如眼睛)摄取到信息后,信息通过两条神经线路发送到颞叶部。其中滚顷一条为直达路线,另外一条要经过右脑,虽然负责传播这些信息的神经脉冲速度并不算太快(最多也就是120m/s),但因为我们的脑袋也就几十个厘米,所以在这么短的路程中,两条线路的信号会几乎在同时到达—这是正常情况。但在某些特殊的时候,比方说你没吃早饭,没睡午觉,通宵熬夜,等圆消等导致注意力分散,精神高度疲惫,大脑处于混乱的情况下,绕经右脑的那条线路就发生了迟滞,在这小小的传输误差中,直线传播的信号已经到达颞叶部,并且被大脑处理整合放入了记忆库,这是,途径右脑的信号到达了,因此就会被认为是发生过了的事情,从而产生了既视感。

四,心理学家的解释

和脑神经专家的观点一致,心里学家也认为大脑记忆库里面的信息来自于我们本人,不过他们不认为是神经传输造成的,只是你无意识间接受了某些信息,但自己实际上并不知情。就如同你去朋友家做客,你忽略了朋友家墙上的一副油画,简单的说,主观上你不认为你看到过这幅画,但是实际上这幅画的信息已经被你的记忆库所记录,当你再次注意到这幅画的时候,你的大脑就会告诉你,你已经看过这幅画了,所以,既视感产生了。

五,物理学的多元宇宙,时间旅行

多元宇宙是最普遍的物理学说法,在这种理论中,你通过某种方式跃迁到了你所不曾经历过某个事件A一个宇宙B当中,但是你任然带着宇宙A的经历,当时间A发生在宇宙B中,你就会有关于这个事件A的记忆,于是,既视感又产生了。

几乎每个人都有这样的体验,你拼命地想找到某样东西,并且这样东西在你的记忆中确实存在于一个确定的地方,但它就是不见踪影,你七上八下,翻箱倒柜以后却发现这个东西老老实实地呆在那个确定的地方,物理学家们把这个叫做物品的短暂地进入了别的时空,同样的,既视感的产生就是人进入了不同的多元宇宙而已。

六,结语

对于既视感,这个世界上还有一种感觉,那就是“未视感”(jamais vu,法语,未曾相识),感觉“字为什么变的陌生了”就是未视感的一个经典例子,未视感其实也从反面证实了“传输延迟论”的科学性,其实二者的本质是一样的,既视感就是文件放错了地方,而未视感则是文件被暂时删除无法找到了。所以,对于既视感最为科学的解释,还是“传输延迟论”最为恰当。

3D打印通常是采用数字技术材料打印机来实现的。常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,已经有使用这种技术打印而成的零部件。该技术在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车,航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、q支以及其他领域都有所应用。

原理技术

3D打印机,已成功打印一辆F1赛车 [2]

日常生活中使用的普通打印机可以打印电脑设计的平面物品,而所谓的3D打印机与普通打印机工作原理基本相同,只是打印材料有些不同,普通打印机的打印材料是墨水和纸张,而3D打印机内装有金属、陶瓷、塑料、砂等不同的“打印材料”,是实实在在的原材料,打印机与电脑连接后,通过电脑控制可以把“打印材料”一层层叠加起来,最终把计算机上的蓝图变成实物。通俗地说,3D打印机是可以“打印”出真实的3D物体的简大一种设备,比如打印一个机器人、打印玩具车,打印各种模型,甚至是食物等等。之所以通俗地称其为“打印机”是参照了普通打印机的技术原理,因为分层加工的过程与喷墨打印十分相似。这项打印技术称为3D立体打印技术。

打印过程

三维设计

英国工程师“打印”出无人飞机 [9]

三维打印的设计过程是:先通过计算机建模软件建模,再将建成的三维模型“分区”成逐层的截面,即切片,从而指导打印机逐层打印和稿。

设计软件和打印机之间协作的标准文件格式是STL文件格式。一个STL文件使用三角面来近似模拟物唤咐孝体的表面。三角面越小其生成的表面分辨率越高。PLY是一种通过扫描产生的三维文件的扫描器,其生成的VRML或者WRL文件经常被用作全彩打印的输入文件。

应用领域

海军舰艇

2014年7月1日,美国海军试验了利用3D打印等先进制造技术快速制造舰艇零件,希望借此提升执行任务速度并降低成本。

航天科技

2014年9月底,NASA预计将完成首台成像望远镜,所有元件基本全部通过3D打印技术制造。NASA也因此成为首家尝试使用3D打印技术制造整台仪器的单位。

医学领域

3D打印肝脏模型

日本筑波大学和大日本印刷公司组成的科研团队2015年7月8日宣布,已研发出用3D打印机低价制作可以看清血管等内部结构的肝脏立体模型的方法。据称,该方法如果投入应用就可以为每位患者制作模型,有助于术前确认手术顺序以及向患者说明治疗方法。

3D打印头盖骨

2014年8月28日,46岁的周至农民胡师傅在自家盖房子时,从3层楼坠落后砸到一堆木头上,左脑盖被撞碎,在当地医院手术后,胡师傅虽然性命无损,但左脑盖凹陷,在别人眼里成了个“半头人”。

3D打印脊椎植入人体

2014年8月,北京大学研究团队成功地为一名12岁男孩植入了3D打印脊椎,这属全球首例。据了解,这位小男孩的脊椎在一次足球受伤之后长出了一颗恶性肿瘤,医生不得不选择移除掉肿瘤所在的脊椎。不过,这次的手术比较特殊的是,医生并未采用传统的脊椎移植手术,而是尝试先进的3D打印技术。

3D打印手掌治疗残疾

2014年10月,医生和科学家们使用3D打印技术为英国苏格兰一名5岁女童装上手掌。

3D打印心脏救活2周大先心病婴儿

2014年10月13日,纽约长老会医院的埃米尔·巴查博士(Dr.Emile Bacha)医生就讲述了他使用3D打印的心脏救活一名2周大婴儿的故事。这名婴儿患有先天性心脏缺陷,它会在心脏内部制造“大量的洞”。在过去,这种类型的手术需要停掉心脏,将其打开并进行观察,然后在很短的时间内来决定接下来应该做什么。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12214170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存