文件操作

文件操作

  1. 找到文件位置
  2. 双击打开
  3. 进行一些操作
  4. 关闭文件

读操作

文件只能读取一次

注意光标的位置

open()打开 通过python控制操作系统进行打开文件

f=open(“路径”,mode=“模式”,encoding="编码格式")

mode不写默认是r读

f称为文件句柄

file 文件的位置

encoding 文件的编码

f.read()

read全部读取

read(11)按照字符读

readline() 按行读取默认尾部有一个\n

readline().strip() 去掉\n

readlines() 一行一行读取,全部存储在列表中

1755501-20190823204327997-1806531895.png

1755501-20190823204332353-16749059.png

路径:

  1. 绝对路径:从磁盘开始查找
  2. 相对路径:相对于上级文件进行查找

rb 读取字节

在字节操作时不能指定encoding编码

f=open( " ",mode="rb")

f.read() 全部读取

f.read(3) 按照字节读

f.readline()按照行进行行读取

f.readlines()按照行进行行全部读取

r 和rb的区别:

  1. r需要指定encoding,rb不需要
  2. r模式中的read(3)按照字符读取,rb模式的read(3)按照字节读取

read 和readlines如果文件太大时会出现内存溢出

解决方案:
1755501-20190823204340138-1907608271.png

写操作

w操作:清空写 w写文本

  1. 先清空文件(打开文件的时候)
  2. 先清空文件(打开文件的时候清空)
  3. 写入内容

1755501-20190823204348267-123868661.png

1755501-20190823204354380-1457900959.png

wb操作:清空写 w写字节
1755501-20190823204400747-1857662154.png

a --- 追加写(文本)

1755501-20190823204405838-404449782.png

r+ 读写(有点用)

先读后写
f=open("密码","r+",encoding="utf-8")
print(f.read())
f.write("今天是周一")

w+ 写读(有点用)

f=open("密码","w+",encoding="utf-8")
f.write("今天是周一")
f.seek(0,0)
print(f.read())
如果光标移动到开头再次添加会覆盖原来的信息
f=open("密码","w+",encoding="utf-8")
f.write("今天是周一")
f.seek(0,0)
f.write("aaaaaa")
print(f.read())

a+ 追加读(追加的时候,光标移动到开头,添加时依然是加到后面)

f=open("密码","a+",encoding="utf-8")
f.write("今天是周一")
f.seek(0,0)
f.write("aaaaaa")
f.seek(0,0)
print(f.read())

其他操作

# seek() 移动光标
# f.seek(0,0)  # 移动光标到文件的头部
# f.seek(0,1)  # 移动光标到当前位置
# f.seek(0,2)  # 移动光标到文件末尾
# f.seek(6)   # 光标是按照字节移动


f=open("密码","r",encoding="utf-8")
print(f.read(5))
f.seek(0,0)
f.seek(0,1)
f.seek(0,2)
print(f.read())

f=open("密码","r",encoding="utf-8")
f.seek(6)
print(f.read(3))

f=open("密码","r",encoding="utf-8")
print(f.read(3))
print(f.tell())
f.close()



修改文件

# 修改文件:
# import os  # 操作系统交互的接口
#
# f = open('a2',"r",encoding="utf-8")
# f1 = open("a1","w",encoding="utf-8")
# for i in f:
#     i = i.replace("日","天")
#     f1.write(i)
#
# f.close()
# f1.close()
# os.remove("a2")   # 删除不能找回
# os.rename("a1","a2")




# import os  # 操作系统交互的接口
# f = open('a2',"r",encoding="utf-8")
# f1 = open("a1","w",encoding="utf-8")
# for i in f:
#     i = i.replace("天","日")
#     f1.write(i)
#
# f.close()
# f1.close()
# os.rename("a2","a3")
# os.rename("a1","a2")


# 考点:
# import os  # 操作系统交互的接口
# f = open('a2',"r",encoding="utf-8")
# f1 = open("a1","w",encoding="utf-8")
# i = f1.read().replace("天","日")    # 将文件中全部内容读取 容易导致内存溢出
# f1.write(i)
#
# f.close()
# f1.close()
# os.rename("a2","a3")
# os.rename("a1","a2")

# with open("a3","r",encoding="utf-8")as f,\
#         open('a2',"r",encoding="utf-8")as f1:
#     print(f.read())
#     print(f1.read())

# 1.自动关闭文件
# 2.同一时间操作多个文件

# 文件操作的目的:
#     1.持久化: 永久存储

转载于:https://www.cnblogs.com/python25/p/11402519.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值