网站首页 > 文章精选 正文
一、常用场景
- 打开文件
- 读写文件
- 复制文件
二、使用方法
1)创建文件对象
# 用open方法创建个文件对象file_demo
file_demo = open('file.txt', mode='r', encoding='utf-8')
- file.txt是要读取的文件的绝对路径,若是相对路径则从当前py文件的文件夹找file.txt。
- encoding 编码格式,一般使用utf-8,有些是gbk。
- mode 指文件打开模式,读写等模式,一般是'a+','r+','w+'比较常用。可选的文本模式如下:
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(Python 3 不支持)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2)操作文件对象
- 移动文件读取指针到指定位置,常用于重置读取文件指针到文件开头位置或者结尾位置
file.seek()
- 读取整行,包括 "\n" 字符。每读取一次,就进入到下一行。
file.readline()
- 读取每一行并返回列表
file.readlines()
- 将字符串写入文件,返回的是写入的字符长度。
file.write(str)
- 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
file.writelines(sequence)
- 关闭文件。关闭后文件不能再进行读写操作。
file.close()
三、测试demo
# -*- coding: utf-8 -*-
"""
@Time : 2022/1/26 15:41
@Auth : 技术空间
@File :file_demo.py
@IDE :PyCharm
@Motto:技术总是要日积月累的
"""
if __name__ == '__main__':
file_path = 'E:/python_other_project/code_space_demo/file.txt'
file_demo = open(file_path, mode='r+', encoding='utf-8')
# readline的使用效果
line_list_1 = []
line1 = file_demo.readline()
line2 = file_demo.readline()
line_list_1.append(line1)
line_list_1.append(line2)
print("readline逐行读取的使用效果,原文件的内容为:")
print(''.join(x for x in line_list_1))
# writelines使用效果,追加写一行
file_demo.writelines("技术空间祝大家新年快乐!\n")
file_demo.writelines("头条号:技术space")
# 重置文件读取指针到文件开头
file_demo.seek(0)
# readlines的使用效果
line_list_2 = file_demo.readlines()
print("readlines所有行读取的使用效果,写入文字后的内容为:")
print(''.join(x for x in line_list_2))
file_demo.close()
关注我,坚持每日积累一个技巧,长期坚持,我们将会不断进步。
猜你喜欢
- 2024-12-23 python网络爬虫:批量爬取图片 python批量爬取图片并保存
- 2024-12-23 10w qps缓存数据库——Redis redis缓存数据量多大开始性能下降
- 2024-12-23 「JS 逆向百例」某网站加速乐 Cookie 混淆逆向详解
- 2024-12-23 「JS 逆向百例」猿人学web比赛第五题:js 混淆 - 乱码增强,详细剖析
- 2024-12-23 Python 操作mysql实现事务处理 python+操作mysql实现事务处理功能
- 2024-12-23 python 大量乱序文件如何合并成有序的
- 2024-12-23 如何使用 PyScript 在 Web 浏览器上轻松运行
- 2024-12-23 Selenium4.0+Python3系列(四) - 常见元素操作(含鼠标键盘事件)
- 2024-12-23 Selenium4+Python3系列(六) - 强制等待、隐式等待、显式等待
- 2024-12-23 Python文件、文件夹删除之os、shutil
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)