python-文件操作(一)
文件操作

1、什么是文件?
- 文件是操作系统暴露给用户操作硬盘的‘接口’。
2、操作文件的方法:
- 打开文件:open()
- 关闭文件:close()
3、路径分类:
- 绝对路径
- 相对路径
4、如何取消特殊字符的功能:
- 在路径前加‘r’
- 在\前再加一个\
5、对文件的操作有:读、写、追加内容
- r:路径存在只读模式不能修改,路径不存在直接报错
- w:路径存在每打开一次都会清除文件内的内容,路径不存在自动创建
- a:路径存在会将文件指针直接移动到文件末尾,在文件不存在时会创建空文档
实例如下:
# 1.以只读,utf8编码模式打开当前路径下的a.txt文件
#首先在当前路径创建a.txt文件
res = open('a.txt',mode='r',encoding='utf8')
# 查看内容
print(res.read())
# 对文件操作完必须关掉,释放资源
res.close()
res1 = open(r'E:\python item\Old_BoyClass_second\a.txt',mode='r',encoding='utf8')
# 绝对路径前加r,取消\a原有的功能
print(res1.read())
# 对文件操作完必须关掉,释放资源
res1.close()
#结果,上下两种操作结果一样
我要坚持学python!
我要坚持学python!
#2. 以写,utf8编码模式打开当前路径下的a.txt文件
res = open('a.txt', mode='w', encoding='utf8')
# 输入hello内容,清除了以前的我要坚持学python!
res.write('hello')
# 对文件操作完必须关掉,释放资源
res.close()
#结果,在a.txt文件中存入
hello
#3. 以追加内容,写功能,utf8编码模式打开当前路径下的a.txt文件
res = open('a.txt', mode='a', encoding='utf8')
# 输入hello内容,清除了以前的我要坚持学python!
res.write(' world\n')
res.write('python\n')
# 对文件操作完必须关掉,释放资源
res.close()
#结果,在a.txt文件中追加world和python字符
world
python
6、with上下文管理
解决了总是忘记关闭文件的问题,用with关键字执行完代码后会自动关闭文件,释放资源
with语法格式:
with open(‘文件名’,’r/w’) as f:
f.读操作/f.写操作
with还可以同时打开多个文件:
with open(‘文件名1’,’r/w’) as f1, open(‘文件名2’) as f2:
pass
实例如下:
# with关键字上下文管理
# 打开一个不存在的文件,相当于创建
with open('b.txt', mode='w') as f1:
f1.write('hello world!')
# 打开多个文件,相当于创建
with open('c.txt',mode='w') as f2,open('d.txt',mode='w') as f3:
#分别在c.txt文件和d.txt文件中存入Hammer和python
f2.write("Hammer")
f3.write('python')
#结果
hello world!
Hammer
python
7、文件操作方法详细:
1、r-读操作
- read():一次性读取文件所有内容
- readline():每次只读一行内容
- readlines():读取文件所有内容,组织成列表,每个元素是文件的每行内容
- readable():判断当前文件是否具备读的能力
实例如下:
# 选择提前创建好的文件,然后打开验证功能
with open(r'E:\python item\Old_BoyClass_second\test.txt', mode='r', encoding='utf8') as read_f:
# 读取文件所有内容
# print(read_f.read())
# 结果
'''
只读第一行
只读第二行
只读第三行'''
# 每次只读取一行
# print(read_f.readline())
#结果
# 只读第一行
# 读取文件所有内容,转换成列表的形式
# print(read_f.readlines())
#结果
# ['只读第一行\n', '只读第二行\n', '只读第三行']
# 判断文件是否可读
print(read_f.readable())
#结果
True
2、w-写操作
write():往文件内写入文本,写入的内容必须是字符串(文本)
writelines():可以将列表中多个字符串元素全部写入,只能写字符串类型
writeable():判断该文件是否可以执行写操作
实例如下:
# 选择提前创建好的文件,然后打开验证功能
with open(r'E:\python item\Old_BoyClass_second\test.txt', mode='w', encoding='utf8') as write_f:
# 每次执行写操作,会清空文件以前的内容,再添加写入的内容
# write_f.write('清空文件内容,写入第一行')
# 可以将列表内多个元素同时写入
# write_f.writelines(['Hammer', 'Ze', '求关注'])
# 判断该文件是否具有写功能
print(write_f.writable())
8、文件优化操作
当使用read()方法遇到比较大的文件时一次性读取文件所有内容会可能造成内存溢出的情况,为了解决上述问题,利用逐行读取文件内容的方式,利用for循环,读取一行结束后python垃圾回收机制会回收释放空间。
实例如下:
# 选择提前创建好的文件,然后打开验证功能
with open(r'E:\python item\Old_BoyClass_second\test.txt', mode='r', encoding='utf8') as write_f:
for line in write_f:
# 遍历的结果自带换行,不要换行可以end = ' ',来取消换行
print(line,end='')
9、文件操作模式
文本模式—— t
- rt :读
- wt :写
- at :追加内容
文件操作默认为文本模式,该模式只能操作文本文件,以字符串为参数,必须指定encoding参数
实例如下:
# 选择提前创建好的文件,然后打开验证功能
# 文本模式
with open(r'test.txt', 'rt', encoding='utf8') as f:
print(f.read())
# 结果
# 一
# 二
# 三
# 四
# 五
with open(r'test.txt', 'wt', encoding='utf8') as f:
f.write('六')
# 结果
# 六
with open(r'test.txt', 'at', encoding='utf8') as f:
f.write('七')
# 结果
# 六七
二进制模式—— b
- rb :读
- wb :写
- ab :追加
该模式可以操作任意类型的文件,该模式不需要指定encoding参数,以二进制位符号位基本单位
实例如下:
# 选择提前创建好的文件,然后打开验证功能
# 二进制模式,不用写encoding参数,写encoding参数会报错
# 二进制模式操作文本文件,读功能
with open(r'test.txt', 'rb') as f:
print(f.read())
# 结果
# b'\xe5\x85\xad\xe4\xb8\x83'
# 二进制模式操作文本文件,追加/写功能
with open(r'test.txt', 'ab') as f1:
# 只能写二进制符号,不然会报错
# f1.write('abc123')
# TypeError: a bytes-like object is required, not 'str'
# 只能通过编码的形式来写入文本encode
a = 'abc123'
f1.write(a.encode())
# 结果
# abc123
# 再解码回来
print(b'abc123'.decode())
# 结果
# abc123
# 二进制操作图片文件
with open(r'E:\python item\Old_BoyClass_second\点赞.gif','rb') as f3:
print(f3.read())
# 结果太眼花了大家自己输出一下吧
练习题:
# 3.写一个简易的拷贝工具支持所有的文件类型
#copy test.txt文件生成copytest.txt,因为支持所有文件所以选择二进制模式操作文件
with open(r'test.txt', 'rb') as read_f, open(r'copytest.txt', 'ab') as copy_f:
# 用for循环打印读取的内容,防止内存溢出
for content in read_f:
# print(content)
# 写入遍历得到的内容
copy_f.write(content)

点个赞再走吧!
点个赞再走吧!
点个赞再走吧!
python-文件操作(一)的更多相关文章
- Python基础篇【第2篇】: Python文件操作
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- Python文件操作与函数目录
文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...
- 初学Python——文件操作第二篇
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
- day8.python文件操作
打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...
- 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()
嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...
- Python之路Python文件操作
Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...
- python 文件操作 r w a
python基础-文件操作 一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件时,需要指定文件路径和以何等方式打开文件, ...
- Python:文件操作技巧(File operation)(转)
Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python # -*- coding: utf8 -*- spath = " D:/dow ...
- 小学生都能学会的python(文件操作)
小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...
随机推荐
- RabbitMQ 3.9.7 镜像模式集群的搭建
1. 概述 老话说的好:做人脚踏实地,一步一个脚印,便定能战胜一切困难,最终取得成功!!! 言归正传,之前我们聊了 RabbitMQ 单点服务的安装,今天我们来聊聊 RabbitMQ 3.9.7 镜像 ...
- VS2013的主函数问题
报错如下: 打开属性里面,修改字符集即可
- Android QMUI实战:沉浸式/适配状态栏
近期研究QMUI换肤的实现,顺便分析了下QMUI的沉浸式. 网上已有很多关于QMUI实现页面沉浸式的文章,简而言之:复杂了. 本期,我们仅通过几行代码,即可完美实现页面沉浸式效果,并轻松匹配换肤的色彩 ...
- CSS引入字体文件
在css引入字体文件可以直接把以下代码复制到css文件中 /* 字体声明 */ @font-face {font-family: 'icomoon';src: url('fonts/icomoon.e ...
- diff算法深入一下?
文章转自豆皮范儿-diff算法深入一下 一.前言 有同学问:能否详细说一下 diff 算法. 简单说:diff 算法是一种优化手段,将前后两个模块进行差异化比较,修补(更新)差异的过程叫做 patch ...
- 【UE4 C++】DateTime、Timespan 相关函数
基于UKismetMathLibrary DateTime 相关函数 Timespan 运算操作相关函数见尾部附录 /** Returns the date component of A */ UFU ...
- 【二食堂】Alpha - 事后分析
事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Alpha阶段要解决的问题是:根据用户标注的信息完成知识图谱的生成渲染.要解决的问题定义得比较 ...
- spring security中动态更新用户的权限
在程序的执行过程中,有时有这么一种需求,需要动态的更新某些角色的权限或某些人对应的权限,当前在线的用户拥有这个角色或拥有这个权限时,在不退出系统的情况下,需要动态的改变的他所拥有的权限. 需求:张三 ...
- Noip模拟71 2021.10.7
T1 签到题 结论题,找到规律就会做 规律是每个点的度数$\mod$颜色种数,如果不是$0$则贡献一个答案 1 #include<bits/stdc++.h> 2 #define int ...
- python2和python3并存下的pip使用
py -2 -m pip install *.whl py -3 -m pip intall *.wl