文件操作

文件操作

常见的文件类型:

  • txt
  • csv
  • json
  • html
  • mp4

文件操作的流程

  • 打开 —> open()
  • 读/写 —> read()/write()
  • 关闭 —>close()

在这里插入图片描述

文件的打开与关闭

内置函数: open() , 创建一个file对象,之后才可以用他调用相关的方法。

语法格式:

打开

file_object = open(file,[,mode],[,encoding="utf-8"],[,buffering])  
# 后面要 .close()关闭
with open('./data/GreenFlowerPorcelain.txt','r',encoding='UTF-8') as f:
    print(f.read())
#会自动关闭    

解释:

  • file_object —>open()返回的文件对象

  • file —> 要打开的文件

  • mode —> 指定模式: 只读 ,写入 ,追加等等。 。 一般默认为只读。

  • encoding —> 指定文件编码, 通常使用 “utf-8” / “GBK”

  • buffering —> 若设置为0 , 不会有寄存;设为1,访问文件时会寄存行;设为大为1的数,表明是寄存区的缓存大小;设为负数,则寄存区的缓存区大小为系统默认。

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件对象的属性

属性描述
f.name返回文件的名称
f.mode返回打开文件的访问模式
f.closed返回文件是否被关闭 True/False

关闭

f.close()

节省计算机资源和提高性能,使用完文件之后,关闭它。

文件的读写

  • f.read([size])
    • 从文件指针处读取
    • 传递size,指定读取的字节数
f = open('./data/GreenFlowerPorcelain.txt','r',)
print(f.read(4))
print(f.read(4))
print(f.read(4))
print(f.read())
f.close()

 1 G
reen
 Flo
wer Porcelain
 2 You are the face that has changed my whole world.
 3 You are the face that I see everywhere I go.
 4 You are so beautiful to me that I can't explain ,
 5 Just like a green flower porcelain.
 6 You're like a moon that I awaken to say hello,
 7 So beautiful and bright that you make me content to play it so.
 8 I see your face on the leaves,telling me how lonely I have been.
 9 This is a dream of mine that I have just dreamed.
10 Just see your smiling face everywhere I go.
11 The love I feel for you to shine inside me.
12 But it's all over now you're gone.
  • readline()
    • 默认读取第一行,返回字符串
  • readlines()
    • 默认全部读取,返回列表

  • .write()
    • 从指针处开始写入
    • 参数字符串
f = open('./data/城市学院.txt','w',encoding='utf-8')
f.write('测试创建新的文件')
f.write('这样会继续写入')
f.close()
f = open('./data/城市学院.txt','w',encoding='utf-8')
f.write('关闭后再打开write 就会覆盖了')
f.close()
  • writelines()
    • 参数是字符串组成的列表

定位读取

.tell()

  • 获取文件指针当前位置。
f = open('./data/GreenFlowerPorcelain.txt','r',encoding='UTF-8')
f1 = f.read(10)    #从当前指针开始读到第十位  0-9
f_s1 = f.tell()    #查找指针位置
print(f_s1)
#10

.seek()

  • seek(offset[,from])
    • offset,要移动的字节数
    • from,指定偏移的参考位置
      • 0 —> 从开头偏移
      • 1 —> 从当前位置偏移
      • 2 —> 从末尾偏移
f.seek(21,0)    #指针从头开始偏移到21
f2 = f.read(20)   #从指针处 开始读取20
print(f2)
f.close()

lain
 2 You are the 

os 模块

Operator System

随堂小练

新建txt文件 写入随机生成的1024个0-100整数并读取

import random
f = open('./data/test.txt', 'w+')
for i in range(1024):
    f.write(str(random.randint(0,100))+'\n')
f.seek(0, 0)
print(f.read())
f.close()

入随机生成的1024个0-100整数并读取

import random
f = open('./data/test.txt', 'w+')
for i in range(1024):
    f.write(str(random.randint(0,100))+'\n')
f.seek(0, 0)
print(f.read())
f.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值