打开文件的步骤:打开==>操作==>关闭
1.文件的打开
f = open('/tmp/pass','r+') ##括号里面第一个参数为要打开的文件,第二个参数代表要以什么样的权限去操作文件
##下面是第二个参数的权限
"""
r:(默认)
-只能读,不能写
-读取文件不存在,会报错
r+:
-可读写
-读取文件不存在,会报错
w:
-write only
-会清空文件之前的内容
-文件不存在,不会报错,会创建新的文件并写入
w+:
-rw
-会清空文件内容
-文件不存在,不报错,会创建新的文件
a:
-write only
-不会清空文件内容
-文件不存在,不会报错,会创建新的文件并写入
a+:
-rw
-文件不存在不报错
-不会清空文件内容
b:
二进制
"""
如何看你打开的文件是都可读可写呢
print(f.readable()) ##判断是否可读
print(f.writable()) ##判断是否可写
2.文件的操作
1)读取文件的内容
content = f.read() ##会读取文件的所有内容,在一行输出
content = f.read(3) ##会读取文件的前3个
print(f.readline()) ##读取并输出文件的第一行
print(f.readlines()) ##读取文件内容,返回一个列表,列表的元素分别为文件行的那内容
2)写入文件
f.write('hello') ##在文件的最后一行添加hello
3)指针位置
print(f.tell())
seek方法移动指针
seek第一个参数是偏移量:>0,代表向右移动,<0,代表向左移动
seek第二个参数是:
0:移动指针到文件开头
1:不移动指针
2:移动指针到末尾
f.seek(-1,2) ##表示向左移动两个单位
4)非纯文本的操作
下面的操作是复制了一张图片
f1 = open('1111.jpg',mode='rb')
content = f1.read()
f1.close()
f2 = open('westos.jpg',mode='wb')
f2.write(content)
f2.close()
3.文件的关闭
f.close() ##文件打开就一定要关闭,否则会一直占用系统资源
4.with
上下文管理器:打开文件,执行完with语句内容之后,自动关闭文件对象
就像下面这个结构
#同时打开两个文件对象
with open('/tmp/passwd') as f1,\
open('/tmp/passwdbackup','w+') as f2:
#将第一个文件的内容写入到第二个文件中
f2.write(f1.read())
#移动指针到文件最开始
f2.seek(0)
#读取文件内容
print(f2.read())
5.练习
创建文件data.txt,文件共100000行,每行存放一个1~100之间的整数,写完后读取文件内容
import random
f = open('date.txt','a+')
for i in range(100000):
f.write(str(random.randint(1,100)) + '\n')
f.seek(0,0)
print(f.read())
f.close()
ok~