Pythonday07
来源:互联网 发布:虚拟机怎么配置网络 编辑:程序博客网 时间:2024/05/21 08:55
文件的管理
输入(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() # 类似生成器,文件内容不直接以列表方式返回;
文件的写入
write(“str”) # 将字符串写入文件
writelines(“[“hello\n”,”world\n”]”) # 将序列的每个元素写入文件;
文件的其它操作
f.seek(偏移量,选项)
# 偏移量,如果为正数,代表向右偏移;如果为负数,代表向左偏移;
# 选项,如果为0,指针指向文件开始;
如果为1,指针指向当前位置;
如果为2,指针指向文件末尾;
f.flush() # 提交对文件的修改;
文件的几个注意点:
- 文件对象是可迭代数据类型,可以通过for遍历文件的内容;
- with open(“filename”) as f:通过这种方法来避免用户忘记关闭文件的问题;
练习题:
1. 显示文件的所有行,但忽略以#开头的行;
2. 逐页显示文本文件的程序,用户输入一个文件名,每次默认显示行数为10行,给用户一个选项,”是否继续?(Y|N)”
模块与包的管理
模块
- 模块实质上就是一个以.py结尾的文件,可以被其他py文件调用;
- 导入模块时,会去python的默认搜索路径中寻找;
- python的默认搜索路径sys.path,
- 添加自定义的搜索路径时,sys.path是一个列表,sys.apth.append(“path”);
- sys.path.append(“/home/kiosk/1-Pythonv3/day08/code”)
- sys.path.insert(0,’/home/kiosk’) - 导入一个模块的实质是将模块的文件重新运行一次;
- 导入模块的方法:
import module1,module2
from 模块名 import 函数名
from 模块名 import 函数名 as 函数别名
import 模块名 as 函数别名
包
- 导入一个包的实质是运行包里面的init.py文件;
- 导入包的方法:
import 包名.模块名
from 包名 import 模块名
import 包名(注意init.py函数的内容)
模块分类:
- 内置模块(os,sys,time)- 自定义模块- 第三方模块
常用的内置模块
os,sys,time,datetime,json/pickle,shutil,random