python3学习,九——OS模块、第三方模块、SQL数据库

OS模块

#OS 中常用的函数
import os
os.rename(old,new) #重命名
os.remove(f) #删文件
os.mkdir('python文件夹') #创建单级的文件夹
os.makedirs('python2') #创建父目录及子目录文件夹,

#分别用他们两个创建一个2层的目录
#china/beijing
os.makedirs('china/beijing')  #china不存在,先创建China再创建beijing
os.mkdir('china/beijing')   #China不存在,直接报错
os.removedirs('china') #只能删除空文件夹。
print(os.listdir()) #获取当前目录下的所有目录
print(os.path.isdir('china1'))#判断是否是文件夹。不是文件夹或者不存在该文件夹都返回False
print(os.path.isfile('OS模块1.py'))#判断是否是文件。不是文件或者不存在该文件都是返回false
print(os.listdir('E:\\')) #获取e盘目录下的所有目录
print(os.path.exists('china'))#判断文件或者文件夹存在或者不存在
res = os.walk(r'china')  ##os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
for cur_path,dirs,files in res:#三个参数,当前路径,当前路径有多少文件,当前路径有多少文件夹

    print('当前目录:',cur_path)
    print('当前目录下面的所有文件夹',dirs)
    print('当前目录下的所有文件',files)
    print('======================')


os.system('dir')#查看目录
res = os.popen('ipconfig').read() #执行操作系统命令。有返回值。但是要用.read()方法调用下
print(res)
res2 = os.system('ipconfig -all')#执行操作系统命令。无返回值
print(res2)
print(os.path.join('china','beijing','海淀','b.py'))#按照系统类型拼接路径
print(os.path.split(r'china\beijing\海淀\b.py')) #分割路径。把路径和文件分割开。
#例如:os.remove(os.path.join(cur_path,files))
res = os.path.dirname(r'china\beijing\海淀\b.py')#取父目录(取上一级目录)
print(res)
print(os.path.getsize('OS模块.py'))
print(os.getcwd())#获取当前目录,不需要传参
print(os.chdir())#进入到指定目录
print(os.path.getatime())#等等几个time自己查一下

第三方模块

#cmd 中输入 pip install xpinyin  用pip安装,pip命令会自动到官网上下载安装包进行安装
#若报错unknown or unsupported command 'install'--->解决:使用where pip ,查看本机中的pip,将非python底下的pip更名为非pip即可
# import xlutils
#
# pip install pymysql
# pip install xlwt
# pip install xlrd
# pip install xlutils
'''
安装第三方模块的方式:
    1、用pip命令行
        pip install xpinyin
        pip install pymysql
        pip install xlwt
        pip install xlrd
        pip install xlutils
    2、以.whl结尾的文件:
        pip install 绝对路径(或者进入文件所在目录,pip install 文件名)(这种方式安装,若已存在提示already)
    3、以.tar.gz结尾的,压缩包文件:
        (1)解压文件
        (2)在命令行里面进入到这个目录(windows快捷键:在文件所在目录栏中直接输入cmd回车,即可在cmd界面进入该目录)
        (3)执行 python setup.py install(这种方式的安装会把原来安装的直接卸载再安装)

假设装了多版本的python,就指定要安装的python版本 :python3.4 -pip install XXX
菜单栏 File->Settings->Project Day6->Project interpreter 使用真实的python环境,而不是使用虚拟环境。即一开始新建项目
import xpinyin
s = xpinyin.Pinyin()  #实例化
pinyin = s.get_pinyin('妮可罗宾','')#默认用小横杠连接,传一个空,则不补充默认值小横杠
print(s.get_pinyin(pinyin))
'''

操作SQL数据库

#1、ip
host = 'xx.xx.xx.xx'
user = 'xx'
password = '123456'#密码只能是字符串
db = 'x'
port = 3306#端口号只能是int
charset = 'utf8'#只能写utf8,不能写utf-8

import pymysql
conn = pymysql.connect(host=host,password=password,
                user=user,db=db,port=port,
                charset=charset,autocommit = True
                )#建立连接。 #增加autocommit则自动提交,那么就不需要conn.commit()

cur = conn.cursor()#建立游标
#cur.execute('select * from app_myuser limit 5;') #execute只是帮忙执行sql语句,并不获取结果
sql = 'insert into app_myuser(username,passwd,is_admin) VALUE ("Python_LW2","123456","1")'
sql2 = 'select * from app_myuser;'
#sql = "select COLUMN_NAME from information_schema.COLUMNS where table_name = 'app_myuser';"
cur.execute(sql2)#执行sql语句
res = cur.fetchall()
print(res)
print(cur.description)#获取这个表里面的所有字段
#conn.commit()#更新语句、新增语句执行后都要 提交
#res = cur.fetchall()#获取数据库里面的所有结果。获取的结果是二维数组
# res1 = cur.fetchone()#获取数据库里面的一条结果。fetchall执行后,再执行fetchhone则无法读到内容
# print(res1)
#操作后都要关闭,避免超过最大连接数
cur.close()
conn.close()



def my_db(ip,user,password,db,sql,port=3306,chartset='utf8'):
    #定义一个连接数据库的函数
    conn = pymysql.connect(
        host=ip,user=user,password=password,
        db=db,
        port=port,charset=charset,autocommit=True
    )#建立连接。 #增加autocommit则自动提交,那么就不需要conn.commit()
    cur = conn.cursor()#建立游标
    cur.execute(sql)#执行sql语句
    res = cur.fetchall()#获取数据库里面的所有结果。获取的结果是二维数组
    cur.close()
    conn.close()#操作后都要关闭,避免超过最大连接数
    return res