- 文件的管理
- 文件管理的三大步骤
- 文件的几种模式总结
- r模式
- w模式
- r模式
- w模式
- a模式
- a模式
- b模式
- 文件的读取
- 文件的写入
- 文件的其它操作
- 文件的几个注意点
- python操作mysqlmariadb数据库
- 模块与包
- 常用模块
文件的管理
输入(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()# 类似生成器,文件内容不直接以列表方式返回;
文件的写入
- 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]): 将字符串显示转化为元组格式时间