【Python21天学习挑战赛】文件读写操作

简介: 【Python21天学习挑战赛】文件读写操作

活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

文件的操作步骤:

  1. 打开文件
  2. 操作文件
  3. 关闭文件

文件的格式:

f = open ( “file:文件的位置(路径)”,“mode:操作文件的模式”,“encoding:文件编码的方式”)

1 r、w、a

1.1 r 操作:

读取方式:一般文件读过之后,不会再读了

print(f.read()) #全部读取
print(f.read(5)) #按照字符读取
 
print(f.readline().strip()) #按照行读取,读取默认有一个:"张老头真帅!!\n"
print(f.readline()) #按照行读取,.strip()去除换行符
print(f.readline()) #按照行读取
print(f.readlines())    #一行一行读取,保存在列表中

若要读取大文件,用循环:

for i in f:
    print(i.strip())    #本质就是一行一行读取
#   输出:
# 张老头真帅!!
# 憨憨:123456789
# 铁蛋:158495486665
# 铁柱:17739722352
1.2 w操作:

注意:w,a自动检测,没文件就创建,有文件就操作

步骤:

  • (1)先清空文件;
  • (2)写入文件
f=open("小姐姐电话号码",mode="w",encoding="utf-8")
print(f.write("123456789"))
f.write("123456789\n")
f.write("123456789\n")
f.write("123456789\n")
#   输出:9

路径:

  • 绝对路径 – 从根目录开始:C:\…\…\…
f=open("F:\pythonOpenCV\python基础入门\小姐姐电话号码","r",encoding="utf-8")
print(f.read())
  • 相对路径打开文件, …/ 返回上一层
1.3 a操作: 追加写

说明:在源文件的基础上继续写

f=open("小姐姐电话号码","a",encoding="utf-8")
f.write("13843888888\n")
f.write("405651888888\n")

源文件:

2 rb、wb、ab

f1=open("1.jpg","rb")
print(f1.read())     #读取全部文档
print(f1.read(3))    #读取前三个字节
# 一般用于爬虫,爬取图片
f=open("3.jpg","wb")
f.write(f1.read())

3 r+、w+、a+

3.1 r+操作:读写

错误操作:先写后读

f=open("小姐姐电话号码","r+",encoding="utf-8")
f.write("憨憨最憨\n")
print(f.read())

正确操作:先读后写

f=open("小姐姐电话号码","r+",encoding="utf-8")
print(f.read())
f.write("憨憨最憨\n")
3.2 w+:清空写,读
f=open("小姐姐电话号码","w+",encoding="utf-8")
f.write("憨憨最憨\n")
print(f.read())
3.3 a+:追加写,读
f=open("小姐姐电话号码","a+",encoding="utf-8")
f.write("憨憨最憨\n")
print(f.read())

4 其他操作

4.1 tell 查看光标
f=open("小姐姐电话号码","a+",encoding="utf-8")
f.write("憨憨最憨\n")
print(f.tell()) #   返回字节数

结果:

文件内容:
憨憨最憨
憨憨最憨
输出:
28

解释:

ascii – 没有中文

gbk – 英文8b,1B,中文16b 2B

unicode – 英文 16b 2B,中文32b 4B

UTF-8 – 汉字编码占用3个字节;

4.2 seek 移动光标

两个参数:

seek(0,0) – 移动到文件的头部

seek(0,1) – 当前位置

seek(0,2)– 移动到文件的末尾

一个参数:

seek(3) – 按照字节进行移动(按照编码集进行计算)

print(f.seek(0,2))    #将光标移动到指定位置
print(f.read())
4.3 文件修改

说明:把文件里面的内容修改

源文件:

f=open("小姐姐电话号码","r",encoding="utf-8")
s=f.read()
s1=s.replace("最","太")
print(s1)
#   换完之后再写入文件
f=open("小姐姐电话号码","w",encoding="utf-8")
f.write(s1)

结果:

存在问题:

  1. 原来文件未被保留
  2. 先读后写耽误时间
  3. 文件未被关闭
  4. 可能有时候需要一下打开很多文件

解决办法:

(1) with:关键字 open® as f,open(w) f1:

(2)---------文件的具体操作

with open("小姐姐电话号码","r",encoding="utf-8") as f,open("小姐姐电话号码.txt","w",encoding="utf-8") as f1:
    for i in f:
        s1 = i.replace("最", "太爱")
        f1.write(s1)

更改文件名

# import os
# os.rename("小姐姐电话号码.txt","小姐姐电话号码.bak")

相关文章
|
1天前
|
数据采集 数据安全/隐私保护 Python
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
2024年最新【Python】如何用Python来操作PDF文件,收藏(2),2024年最新阿里p7Python面试题
|
1天前
|
机器学习/深度学习 数据采集 自然语言处理
[python][whl]python模块triton的whl文件下载地址汇总(1)
[python][whl]python模块triton的whl文件下载地址汇总(1)
|
1天前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
1天前
|
Python
|
3天前
|
数据采集 数据挖掘 Python
Python学习——函数,2024年最新手持4个大厂offer的我
Python学习——函数,2024年最新手持4个大厂offer的我
|
3天前
|
程序员 Python
python学习1:安装注意事项(1),2024年最新3个月学会Python开发
python学习1:安装注意事项(1),2024年最新3个月学会Python开发
python学习1:安装注意事项(1),2024年最新3个月学会Python开发
|
3天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
3天前
|
Python
【python学习小案例】提升兴趣之模拟系统入侵,2024年最新面试阿里运营一般问什么
【python学习小案例】提升兴趣之模拟系统入侵,2024年最新面试阿里运营一般问什么
|
3天前
|
索引 Python Go
【python学习】字符串详解,面试必问公司的问题
【python学习】字符串详解,面试必问公司的问题
|
3天前
|
存储 索引 Python
【python学习】列表、元组、字典、集合,秋招是不是得到处面试
【python学习】列表、元组、字典、集合,秋招是不是得到处面试