Python学习day07 文件管理、mysql-python及常用模块

  • 文件的管理
    • 文件管理的三大步骤
    • 文件的几种模式总结
      • r模式
      • w模式
      • r模式
      • w模式
      • a模式
      • a模式
      • b模式
    • 文件的读取
    • 文件的写入
    • 文件的其它操作
    • 文件的几个注意点
  • python操作mysqlmariadb数据库
  • 模块与包
    • 模块
      • 创建包的步骤
  • 常用模块
    • os模块
      • os
      • ospath模块
    • sys 模块
    • time模块

文件的管理

输入(raw_input/input)—> 程序处理 —> 输出(print)

文件管理的三大步骤:

  • 打开文件; f = open(“filename”)
  • 处理文件;
    f.read() # 可以读取文件内容
    f.write(“hello”) # 不能往文件中写入,因为默认文件以r的模式打开;
  • 关闭并保存文件; f.close()

文件的几种模式总结:

r模式:

若文件不存在,直接报错;
文件只能读取,不能写入;

w模式:

若文件不存在,直接创建文件;
文件只能写入,不能读取;
打开文件时会清空原有文件内容;

r+模式:

若文件不存在,直接报错;
文件可以读也可以写;
具体写入的内容在哪里,由文件指针(句柄)决定;

w+模式:

若文件不存在,直接创建文件;
文件既能写入也能读取;
打开文件时会清空原有文件内容;

a模式

若文件不存在,直接创建文件;
文件只能写入,不能读取;
写入的内容直接追加到文件最后;

a+模式

若文件不存在,直接创建文件;
文件既能写入也能读取;
写入的内容直接追加到文件最后;

b模式

以二进制的方式打开文件,可以跟r,w,+等组合使用;

文件的读取

  • read()# 直接读取文件所有内容;
  • readline()# 每次读取文件一行内容,返回类型为字符串;
  • readlines()# 读取文件所有内容,以列表形式返回;
  • xreadlines()# 类似生成器,文件内容不直接以列表方式返回;

Python学习day07 文件管理、mysql-python及常用模块_第1张图片

文件的写入

  • f.write(“str”) # 将字符串写入文件
  • f.writelines(“[“hello\n”,”world\n”]”) # 将序列的每个元素写入文件;
    指针指向文件末尾,默认写入文件末尾

文件的其它操作

移动指针
- f.seek(偏移量,选项)

偏移量,如果为正数,代表向右偏移;如果为负数,代表向左偏移; 选项,如果为0,指针指向文件开始; 如果为1,指针指向当前位置;
如果为2,指针指向文件末尾;

  • f.flush() 文件修改之后默认不保存,操作提交对文件的修改;

文件的几个注意点:

  • 文件对象是可迭代数据类型,可以通过for遍历文件的内容;
  • with open(“filename”) as f:通过这种方法来避免用户忘记关闭文件的问题;

练习题:
1. 显示文件的所有行,但忽略以#开头的行;
2. 逐页显示文本文件的程序,用户输入一个文件名,每次默认显示行数为10行,给用户一个选项,”是否继续?(Y|N)”

python操作mysql(mariadb)数据库

安装:
yum install mysql-python -y

import MySQLdb as mysql
#导入python操作数据库的模块并重命名为简单好记的标志

con = mysql.connect('localhost','root','redhat','lockey')
#连接服务器及数据库,当然这一步可以不用写数据库,可以在后面通过cnn.select_db('lockey')来连接到具体的数据库

db = con.cursor()
# 使用cursor()方法获取操作游标 

insert_com = 'insert into User values(%s,%s,%s)'
db.execute(insert_com,('ha1',23,'male'))
# 使用execute方法执行SQL语句

#上边两句的作用等同于下面这句,只不过思想更好一点
#db.execute('insert into User values("ha1",23,"male")')

con.commit()
#提交事务

db.execute('select * from User')
#做一次数据库查询的操作

data = db.fetchall()
# 使用 fetchall() 方法获取所有执行结果,结果为元组类型。
for i in data:
    print i
db.close()
#关闭游标
con.close()
#关闭数据库

模块与包

模块

在 Python 中,一个.py文件就称之为一个模块(Module)。
•大大提高了代码的可维护性;
•编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用;

创建包的步骤:

1、创建一目录为包名;
2、在该文件夹下创建init.py文件存放包的信息,该文件可以为空;
3、根据需要存放脚本文件,已编译的扩展及子包;
4、可以用import,import as,from import等语句导入模块和包;

常用模块

os模块

os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系统平台如 nt 或
posix中的特定函数间自动切换,从而能实现跨平台操作

os

  • 1, os.name: 字符串指示你正在使用的平台。比如对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’。
  • 2, os.stat(file):文件属性操作;
  • 3, os.getcwd():得到当前工作目录,即当前Python脚本工作的目录路径;
  • 4, os.getdir():获取当前目录;
  • 5, os.getenv()和os.putenv():分别用来读取和设置环境变量;
  • 6, os.listdir():返回指定目录下的所有文件和目录名;
  • 7, os.makedirs(dirname)和os.removedirs(dirname):分别生成和删除目录,makedirs可以生成多层递归目录,removedirs可以删除多层递归的空目录,若目录中有文件则无法删除;
  • 8, os.remove():删除一个文件;
  • 9, os.rename(file,back):给文件重命名;
  • 10,os.system():运行shell命令;
  • 11,os.linesep:字符串给出当前平台使用的终止符,例如:Windows使用’\r\n’,Linux使用’\n’;

os.path模块

  • 1, os.path.split():返回一个路径的目录名和文件名;
  • 2, os.path.isfile()和os.path.isidr():分别检验给出的路径是一个文件还是目录;
  • 3, os.path.existe():检验给出的路径是否真的存在
  • 4, os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false;
  • 5, os.path.isfile(name):判断name是不是一个文件,不存在name也返回false;
  • 6, os.path.exists(name):判断是否存在文件或目录name;
  • 7, os.path.getsize(name):获得文件大小,如果name是目录返回0L;
  • 8, os.path.abspath(name):获得绝对路径;
  • 9, os.path.normpath(path):规范path字符串形式;
  • 10,os.path.split(name):分割文件名与目录;
  • 11,os.path.splitext():分离文件名与扩展名;
  • 12,os.path.join(path,name):连接目录与文件名或目录
  • 13,os.path.basename(path):返回文件名;
  • 14,os.path.dirname(path):返回文件路径;

sys 模块

主要提供了系统相关的配置和操作,封装了探测、改变解释器
- runtime 以及资源的交互。
- sys.version: 得到解释器的版本信息
- sys.platform: 得到当前运行平台sys模块
- sys.argv: 获取传递给脚本的参数,参数解析类似于 bash 的方式,第一个参数代表脚本本身;
- print sys.argv:以列表方式返回传递给脚本的参数
- sys.stderr , sys.stdin , sys.stdout: 这些都分别代表一个文件对象;

time模块

  • time.mktime(t): 将元组格式时间转化为时间戳
  • time.localtime(): 将时间戳转化为元组格式时间
  • time.sleep(secs)
  • time.ctime([secs]): 将时间戳转化为字符串格式显示
  • time.strftime(format[,t]): 将元组格式时间转化为字符串显示
  • time.strptime(string[,format]): 将字符串显示转化为元组格式时间

你可能感兴趣的:(python学习笔记,python)