python小白笔记(六)文件操作-常用详细的文件操作内容

在这里插入图片描述

6.文件操作

6.1 什么是文件操作?

文件操作系统给用户/应用程序提供的一个虚拟的概念,如何在程序中打开一个文件,在程序中写入代码即可编辑文件

6.2怎么操作文件?

6.2.1 文件操作的基本流程

文件操作的基本流程:

  • 打开文件
  • 操作文件 读、写文件
  • 关闭文件

6.3文件操作的二种模式

open() 的方法 常用的语法格式如下

open( file , mode = ’ r ’ , encoding = utf-8 )

file = 必需写的 ,文件的路径 ,如果只写名称不写盘符 则要在程序同目录下

mode = 可选 ,文件的打开模式

encoding = 一般utf-8 就可以了,是转换成中文形式,二进制模式下不需要写

#常用的是第二种,他会自动帮我们关闭文件,有时候我们会忘记写f.close()
1.f = open('a.txt','r')   #不会自动关闭文件 需要f.close()
2.with open ('a.txt','r',encoding='utf-8') as f:
    print()
    #第二种还可以写两次  open()一次读或者一次写都可以随意
  with open ('a.txt','r',encoding='utf-8') as read_f,\
     open ('b.txt','w',encoding='utf-8') as write_f:
        res = read_f.read()   #读取a文件写去b中
        write_f.write(res)    #f.close()文件句柄帮我们关闭

其他详细规范如下:

6.3.1常用的 文件操作的模式:

模式描述
r只读的方式打开文件,文件的指针默认放在文件的开头;也是默认模式。
rb二进制的方式打开一个文件,只读,也是指针放在开头,适合除了文字之外图片等。
r+打开一个文件,读写。文件指针放在开头
rb+二进制的方式打开一个文件,读写,也是指针放在开头,适合除了文字之外图片视频MP3等。
w写入的方式打开文件,如果文件存在,内容会被删除重新编辑;如果文件不存在的话,就会新建这个文件
w+读写的方式打开文件,如果文件存在,内容会被删除重新编辑;如果文件不存在的话,就会新建这个文件
wb二进制的方式的方式打开文件只用来写入,如果文件存在,内容会被删除重新编辑;如果文件不存在的话,就会新建这个文件。一般适用于非文字的图片视频MP3等。
wb+二进制的方式的方式打开文件用来读写,如果文件存在,内容会被删除重新编辑;如果文件不存在的话,就会新建这个文件。一般适用于非文字的图片视频MP3等。
b二进制模式
a追加的方式打开文件,如果文件存在,指针放在文件的结尾,新的内容将写在之前的内容之后;如果文件不存在的话,就会新建这个文件
ab二进制的方式打开文件用于追加,如果文件存在,指针放在文件的结尾,新的内容将写在之前的内容之后;如果文件不存在的话,就会新建这个文件用于写入
ab+二进制的方式打开文件用于追加,如果文件存在,指针放在文件的结尾,新的内容将写在之前的内容之后;如果文件不存在的话,就会新建这个文件用于读写
带+号的可写可读,但是不常用

6.3.2 文件的读取和定位

#读操作
f.read()  #读取所有内容  f.read(4) 读取前四个字,里面填写个数
f.readline() #读一行
f.readlines() #读所有  每一行存放在列表里面
f.tell()    #告诉指针的位置,,也可以查看文章里面所有的字节
f.seek(offset, from)  # f.seek(3,0) 就是在第四个字节之后读取 
  '''' offset :文件指针偏移量
    from : 0-文件开头 1-当前位置 2-文件末尾(这里的0,1,2只是代表了文件位置,而不是说0,1,2可以参与指针偏移的计算。from 是可选项,默认为0.目前接触到的知识,'''
#写操作
f.write()
  • 例如我们在同目录下有一个文件“文件操作测试”记事本,内容歌词如下
    在这里插入图片描述

  • 接下来我们用代码读取它的内容

with open(r'文件操作测试.txt', mode='r', encoding='utf-8')as f: #我们读取里面的所有内容,
												如果用w模式的话则会发现里面的内容全消失
    print('第一次读'.center(50, '*'))
    res = f.read()  # 把所有内容从硬盘读到内存
    print(res)
  • 运行结果:

在这里插入图片描述

  • 内容已经被我们在没有打开文件复制的前提下读出来了,同理其他模式的操作也如此,多试几次就熟练了.

6.3.3文件操作 的判断操作

'''  
with open('123.txt','r',encoding='UTF-8') as f :
    print(f.readable())  #判断文件是否可读
    print(f.writable())  #判断文件是否可写
    print(f.name )  #判断文件是否可写
    print(f.encoding)  #判断文件是否可写
    print(f.closed)  #文件是否关闭
    print(f.tell())
'''

6.4 文件的修改

有时候我们需要将某个文件里面的名称字符换掉
在这里插入图片描述

#第一种 先读后写
with open ('文件操作测试.txt','r',encoding='utf-8') as f :
   data=f.read()

with open ('文件操作测试.txt','r+',encoding='utf-8') as f :
   f.write(data.replace('我','666'))  #将我替换成666
   print((data))

运行结果:
在这里插入图片描述

#第二种 创建一个新文件 原文件不动
#    在创建一个新的文件 源文件不动
with open ('文件操作测试.txt','r',encoding='utf-8') as read_f,\
    open ('b.txt','w',encoding='utf-8') as write_f:
    for line in read_f:  #   用 line 去读取 每行读到了内容
        write_f.write(line.replace('我去','66')) # 在将替换之后的内容 写入我们新创建的文件里面

结果如下:我们将得到两个文件,一个是修改之后的,一个是原文件

在这里插入图片描述

6.5模拟网上注册系统

name = input('username').strip()  # 用户输入的名字放在 name里,如果不小心输入了空格,
									我们strip()也可以自动删除首尾的空格
pwd = input('password').strip()  #密码放在pwd里面


with open('注册.txt', 'at', encoding='utf-8')as f:   #将注册好的信息放在一个记事本里面
    info = '%s:%s\n'%(name, pwd)
    f.write(info)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_水哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值