python----对文件的操作

1.操作文件的步骤

打开文件的三步:打开 --> 操作 --> 关闭

#打开文件
f = open('D:/tmp/passwd','w')

#写操作
f.write('hello')

#读操作
# content = f.read()
# print(content)
# print(f.writable())
# print(f.readable())

#关闭
f.close()

在这里插入图片描述
在这里插入图片描述

2.文件的读写
r:(默认)
    -只能读,不能写
    -读取的文件不存在,会报错
    
r+:
    -可以执行读写操作
    -文件不存在,报错
    -默认情况下,从文件指针所在位置开始写入

w:
    -write only
    -会清空文件之前的内容
    -文件不存在,不会报错,会创建新的文件并写入


w+:
    -rw
    -会清空文件内容
    -文件不存在,不报错,会创建新的文件

a:
    -write only
    -不会清空文件内容
    -文件不存在,会报错


a+:
    -rw
    -不清空文件内容,在末尾追加
    -文件不存在,不报错
f = open('D:/tmp/passwd','r+')

#查看当前指针所在的位置
print(f.tell())
f.write('python')

print(f.tell())
content = f.read()
print(content)

f.close()

在这里插入图片描述

3.文件的读取

在这里插入图片描述
readlines():读取文件内容,返回一个列表,列表的元素分别为文件行内容
在这里插入图片描述
默认情况下读取文件的所有内容,小文件可以直接用read读取,如果是大文件(文件大小>内存大小),不能通过read一次性读取所有内容

f.write('hello')
f.writelines(['a','b']) #将列表里的每个元素写入文件
print(f.tell())
print(f.read(3))
print(f.tell())

在这里插入图片描述

  • 移动文件指针
    seek方法,移动指针
    seek的第一个参数是偏移量:>0,表示向右移动,<0表示向左移动
    seek的第二个参数是:
    0:移动指针到文件开头
    1:不移动指针
    2:移动指针到末尾
    在这里插入图片描述
3.非纯文本文件读取

读取文本文件:
r r+ w w+ a a+
读取二进制文件:
rb rb+ wb wb+ ab ab+

f1 = open('hello.png',mode='rb')
content = f1.read()
f1.close()

f2 = open('111.jpg',mode='wb')
f2.write(content)
f2.close()

在这里插入图片描述

4.上下文管理器

同时打开两个文件

with open('/tmp/passwd') as f1,\
    open('/tmp/passwd1','w+') as f2:
    #将第一个文件的内容写入第二个文件中
    f2.write(f1.read())
    #移动指针到文件最开始
    f2.seek(0)
    #读取文件内容
    print(f2.read())

在这里插入图片描述

5.文件操作练习

题目:
创建文件data.txt,文件共100000行,每行存放一个1~100之间的整数

import random

f = open('data.txt','w+')
for i in range(100000):
    f.write(str(random.randint(1,100)) + '\n')

f.seek(0)
print(f.read())
f.close()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值