1.打开文件
*方式一:f = open()
# 文本:f = open('#文件名',mode='r/r+/w/w+/a/a+')
# 图片:f = open('#文件名',mode='rb/rb+/wb/wb+/ab/ab+')
# 打开文件默认mode='r';
(1)'r':只有读权限:
a.文件不存在:则报错
b.文件存在:不会清空原有内容
(2)'w':只有写权限:
a.文件不存在:则创建文件
b.文件存在:先清空原有内容后写入
(3)'a':只有写权限:
a.文件不存在:则创建文件
b.文件存在:不会清空直接追加写入内容
(4)'r+':有读写权限:
a.文件不存在:则报错
b.文件存在:不会清空直接追加写入内容
(5)'w+':有读写权限:
a.文件不存在:则创建文件
b.文件存在:先清空原有内容后写入
(6)'a+':有读写权限:
a.文件不存在:则创建文件
b.文件存在:不会清空直接追加写入内容
*方式二:with-as 关键字
# with open('#文件名') as f:
# 优势:实现文件自动关闭,无需f.close()关闭文件
# python2.7以后可实现两个文件同时打开进行交互操作
with open('#文件名', 'r') as file, open('#文件名', 'w') as file1:
2.关闭文件
(1)f.close():关闭
(2)f.closed:查看是否关闭,变量,为布尔值
3.读写操作
(1)read
a. f.read(x):默认返回值为全文内容,参数指定读取x个字节
b. f.readline():一行一行显示
c. f.readlines():返回列表,全文每一行为列表元素
d. f.readable():是否有读权限,返回布尔值
(2)write
a. f.write('x'):返回值为输入字符数
b. f.writelines():参数为列表,将列表中每个元素依次写入
c. f.writable():是否有写权限,返回布尔值
d. 快速清空文件
f = open('#文件名','w')
f.close
4.指针操作
#读或写文件时都会移动指针,编程时注意用seek(0,0)归位指针
(1)f.seek():移动指针.
第一个参数是偏移量,大于0向右移动,小于0向左移动;
第二个参数有三个固定值:0-移动到文件开头;1-不移动;2-移动到文件结尾.
(2)f.tell():返回值为指针所在位置的字符数
5.文件对象
# 可迭代:for循环默认遍历文件每一行
6.os模块文件管理
# pwd
print(os.getcwd())
# ls
print(os.listdir('/var/log'))
# touch
os.mknod('/tmp/westos')
# mkdir
os.mkdir('/tmp/westosdir')
# mkdir -p /tmp/ok/westosdir
os.makedirs('/tmp/ok/westosdir')
# rm
os.remove('/tmp/westos')
# rm -r
os.removedirs('/tmp/ok/westosdir')
# mv
os.rename('/tmp/passwdok', '/mnt/passwdok')
# 判断文件属性
print(os.path.isfile("/etc/passwd"))
# 判断是否为绝对路径
print(os.path.isabs("~/passwd"))
# 判断文件或者目录是否存在;
print(os.path.exists('/etc/passwds'))
print(os.path.exists('/mnt'))
# 分离路径与文件名:返回元组
# 路径分隔符:
# Linux: /etc/passwd/hh
# Windows: C:\\book\python
print(os.path.split('/etc/passwd/hh'))
# 分离文件名与后缀名
print(os.path.splitext("hello.py"))
# 获取当前系统下的路径分隔符
print(os.path.sep)
# 获取文件名
print(os.path.basename('/hello/hello.py'))
# 获取目录名
print(os.path.dirname('/hello/hello.py'))
7.脚本