#Python#编程大神原来是这么来的,一篇文章带你走入大神的世界( 六 )


此外 , 第三方的模块一般放置在lib目录下的site-packages中 。
三、文件操作与数据库操作
文件操作
文件的打开:使用Python打开文件方法的格式就是open(文件地址操作形式) , open函数的参数中的操作形式有:w(写入)、r(读取)、b(二进制)、a(追加) , 其中的a表示可以实现追加写入 , 这样就不会丢失原来的内容 , 如果使用w就是全新写入 , 将会覆盖原本的内容 。

fh=open(\"D:/我的教学/Python/20180120内训/第1天代码/文本1.txt\"\"r\"encoding=\"utf-8\")#文件读取data=https://mparticle.uc.cn/api/fh.read()line=fh.readline()

上述代码中的操作形式是“r” , 也就是读取文档 , 并且可以通过encoding设置编码格式 , 比如utf-8或者gbk等 , 这样就可以打开文件 。 之后就可以通过read()或者readline()等方法进行读取 。 read()指的是将文件中的内容全部读取出来 , readline()则是一行行地读取 。

x=0fh=open(\"D:/我的教学/Python/20180120内训/第1天代码/文本1.txt\"\"r\"encoding=\"gbk\")while True:    line2=fh.readline()    if(len(line2)==0):        break    print(line2)    x+=1fh.close()

上述代码中使用readline()一行行地读取文件 , 这里通过设置while循环来读取文件全部内容 , 如果某一行的长度为0则说明文件已经读完 , 此时就可以break , 而如果不为0则说明还有内容 , 就可以继续读取下一行 。 上述代码中还通过变量x统计共读取了多少次 , 在文件读取完后通过fh.close()关闭文件 。 结果输出后还可以通过x获取读取的总行数 。
文件的写入(w/a+):在进行文件写入时 , 在open函数中的操作形式的参数应该为“w”或者“a” , 参数中的文件地址则是输出地址 。 如下代码段所示:
data=https://mparticle.uc.cn/"一起学Python!\"fh2=open(\"D:/我的教学/Python/20180120内训/第1天代码/文本3.txt\"\"w\")fh2.write(data)fh2.close()

在文件地址中 , 不能够使用“\\” , 而应该使用“\\\\”或者“/” 。 在打开文件之后使用write方法将数据写入之后 , 将文件关闭即可 。 如果操作形式为“w” , 将会把原本的文件内容替换掉 , 也就是全新写入的意思 , 而如果使用“a+”就是在原本内容的基础上进行追加 。
数据库操作
Python除了用于操作文件之外 , 还常用于操作数据库 , 本文以操作MySQL数据库为例讲解 。 在使用Python操作数据库之前需要先安装pymysql模块 , 在cmd命令行中输入“pip install pymysql”即可完成该模块的安装 。
在安装完pymysql之后 , 还需要将其中的源代码进行一定的修改 , 因为使用其默认编码会出现错误 。 在site-packages下面找到pymysql , 并找到connections.py文件 , 搜索“charset=”关键词就可以定位到需要进行修改的地方 。
在connections.py中的charset=部分原本是没有编码的 , 现在加上编码这样就不会出错了 , 这里的编码一般建议使用“utf8” 。 需要注意的是写入“utf8”而非“utf-8” , 通过这样的设置基本上就可以解决乱码的问题 。
使用Python进行数据库的操作的前提是需要一个MySQL数据库 , 至于MySQL数据库的安装和配置不是本文所关心的对象 , 大家可以自行学习 。 在拥有了MySQL数据库之后首先应该进行数据库的连接 。

import pymysqlconn=pymysql.connect(host=\"127.0.0.1\"user=\"root\"passwd=\"root\"db=\"mypydb\")#执行sql语句-无返回conn.query(\"INSERT INTO mytb(titlekeywd) VALUES('new title''23456')\")conn.commit()#执行SQL语句-有返回cs=conn.cursor()cs.execute(\"select * from mytb\")for i in cs:    print(\"当前是第\"+str(cs.rownumber)+\"行\")    print(\"标题是:\"+i[0