一  文件介绍

1.什么是文件

狭义说:文本文件;广义说:超文本文件, 图片,声音,超链接,视频。

2.文件的分类

文件大体上可以分为两类,文件文件和二进制文件。

3.文件的作用

使用文件的目的是把一些数据存储存放起来。

4.使用文件的流程

我们操作一个文件的流程一般是打开文件,读写文件,关闭文件。通过程序操作文件的流程也是这三步,首先打开文件,然后读写文件,最后关闭文件

二 读写文件简单操作

基于文件的操作   有如下方法    我们通过代码会列举介绍

读取操作

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

写操作

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

1  读文件   read

r

file = open('file/a.txt',mode = 'r')
ret = file.read()    #读取文件中的所有内容
print(ret)
file.close()

file叫做文件句柄,或者文件对象  用来操作文件

第一个参数是文件的路径,第二个参数  mode=  是访问文件的模型   r 表示读  默认也是r 模式

rb

file = open('121.jpg',mode='rb')
ret = file.read()
print(ret)
file.close()"""
b'\xff\xd8\xff\xe1\x000Exif\x00\x00MM\x00*\x00\x00\x00\x08\x00\x01\x011\x00\x02\x00\x00\x00\x0e\x00\x00\x00\x1a\x00\x00\x00\x00www.meitu......
"""

r+

file = open('aa.txt',mode='r+')
ret = file.read()
print(ret)
file.close()"""
abcdefg             #指会放在文件的开头,下次操作时时会从光标处开始
hijklmn
"""

2 写操作  wirte

w      只用于写入

注意  1文件不存在,会创建文件(不会创建目录)  2  会覆盖掉源文件的内容重新写入

file = open('1ji/bb.txt',mode='w')
file.write('zzz')
file.close()

w+   可用于读写  其他作用和w一致

file = open('1ji/bb.txt',mode='w+')
file.write('zzzaaa')
ret = file.read()   #读出的内容为空   因为光标的位置在最后
print(ret)
file.close()

a    追加  和 w不同的是,a 所添加的内容是追加在文件后边的,不会覆盖之前文件的内容   同样,如果文件不存在,则会创建一个新的文件

file = open('1ji/bb.txt',mode='a')
file.write('zzzaaa')
file.close()

a+   a+可以进行读写

file = open('1ji/bb.txt',mode='a+')
file.write('zzzaaa')
ret = file.read()   #读出的内容为空   因为光标的位置在最后
print(ret)
file.close()

具体操作

read()

调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,会容易导致程序卡死,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容

file = open('aa.txt')
ret = file.read(3)
print(ret)
file.close()

readline()

readline  每次读取一行,并且自带换行功能,每一行末尾会读到\n

file = open('1ji/bb.txt')
ret = file.readline()
print(len(ret))
print(ret)
print(file.readline())
print(file.readline(3))
file.close()"""
6
qwertasdaa
"""

readlines()

一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来

file = open('1ji/bb.txt')
ret = file.readlines()
print(ret)'''
['qwert\n', 'asdaa\n', 'ssssa']
'''

循环读取

file句柄是一个可迭代的对象,因此,可以循环读取文件中的内容 每次只读一行

file = open('1ji/bb.txt')
for line in file:print(line)qwertasdaassssa

write()

file = open('1ji/bb.txt',mode='w')
file.write('aaaaa')
file.write('bbb')
file.close()

writelines()

file.writelines(seq)  把seq的内容全部写到文件中(多行一次性写入)

file = open('1ji/bb.txt',mode='w')
lst = ['aa\n','bb','cc']
file.writelines(lst)
file.close()"""
aa
bbcc
"""

其他操作

1 tell

获取文件当中当前光标所在的位置

file = open('1ji/bb.txt',mode='r')
ret = file.read(3)
pos = file.tell()
print(pos)
print(ret)
file.close()"""
4
aa
"""

seek()

seek 移动光标位置

参数:

offset  移动的长度(字节)

whence  相对位置 0 从头(默认),1从当前 2从末尾

file = open('1ji/bb.txt',mode='r')
print(file.read(3))
# file.seek(0,0)
file.seek(0,1)
# file.seek(0,2)  #空
ret= file.read(3)
print(ret)
file.close()

name 和 mode

file.name  返回  路径

file.mode  返回  文件读写模式

file = open('1ji/bb.txt','r')
print(file.name)            #返回路径  1ji/bb.txt
print(file.mode)            # r
file.close()

with

使用with方式操作文件,可以不用关闭文件,会自动关闭文件。

with open('1ji/bb.txt') as file:ret = file.read()print(ret)

乱码

python读写文件时,默认使用的编码为平台编码,也就是gbk。

在pycharm中创建的文件默认使用的是utf-8编码

1,往pycharm中的1ji.bb中保存内容

with open('1ji/bb.txt',mode='w',) as file:file.write('哈哈')

2 向磁盘中文件保存内容能,不乱码。

指定编码

with open('1ji/bb.txt',mode='w',encoding='utf-8') as file:file.write('哈哈')

python 基础 文本文件的操作相关推荐

  1. python基础------文件读写操作、re、os和sys模块

    1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...

  2. python基础之文件操作,集合,函数

    文件操作: 打开文件的方法: 第一种:打开文件执行完命令后,需要关闭文件,否则会一直占用内存空间 f=open('/data/1.txt','r+')    #后面的r+ 表示打开文件的模式是读写 # ...

  3. Python基础知识4——操作列表

    本章内容来自书籍,记录下来仅方便复习,如有侵权,请联系作者删除. 一.遍历整个列表 遍历列表中的所有元素,并对每个元素执行相同的操作.可用Python中的for循环. names = ['tom',' ...

  4. Python基础--通用序列操作

    Python 继续 Python包括6种内建的序列,分别是:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.我们将逐步进行介绍. 今天主要介绍一下通用序列操作.放之四海而 ...

  5. python基础之文件操作 内置模块(13)

    文件操作: 打开文件,读写文件,操作文件内容 写入文件操作:(把大象装进冰箱) 1.打开文件 open() #1.打开冰箱门 2.向文件中添加内容 write() #2.把大象塞进去 3.关闭文件 c ...

  6. Python基础知识-字符串操作

    字符串常见操作 1.切片 2. 查询(find,index) 3. 大小写转换(upper.lower.swapcase.capitalize和title) 4. 对齐(center,just和zfi ...

  7. Python 基础之字符串操作,函数及格式化format

    一.字符串的相关操作 1.字符串的拼接 + strvar1 = "我爱你," strvar2 = "亲爱的姑凉" res = strvar1 + strvar2 ...

  8. 【python基础】list操作相关:扩充、条件查找【IndexError: list assignment index out of range】...

    参考 [https://blog.csdn.net/qq_44768814/article/details/88614393] [IndexError: list assignment index o ...

  9. (Python基础)集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 以下代码演示了去重,增删改查,以及关系测试供参考学习 ...

最新文章

  1. CvMat,Mat和IplImage之间的转化和拷贝
  2. 独家 | 教你使用Keras on Google Colab(免费GPU)微调深度神经网络
  3. QT 通过QNetworkReply *获取对应请求的URL地址
  4. 元素(块、行内、行内块
  5. CCF201312--模拟练习试题参考答案(C++)
  6. c#初学-select和Dictionary字典在c#中的用法
  7. 数据表分区, 全新分区
  8. 对zebra的一点思考 --- 002
  9. SRS:软件需求规格说明书
  10. godaddy无法修改域名服务器,GoDaddy域名修改DNS教程 - 修改DNSPOD及CLOUDXNS免费DNS
  11. Your Uninstaller! 注册码
  12. 华为鸿蒙备胎计划,重磅!华为启动“备胎”计划,神秘项目曝光代号
  13. 为什么学小易显示服务器开小差,学小易搜题APP
  14. 爬虫 - 提高爬虫效率的方法
  15. 人工智能,机器学习,深度学习培训,课程大纲
  16. CSS类选择器常用命名
  17. 架构师的职责是什么?
  18. linux对 pow 未定义的引用,未定义引用`pow’和`floor’
  19. JavaScript学习笔记 06、DOM元素—③定时器与延时器
  20. GitHub 上这个「计算机科学」自学指南火了!

热门文章

  1. false函数matlab,ISNUMBER函数使用表达式说明表 matlab拟合函数表达式
  2. php socket之websocket
  3. Servlet缓存清理
  4. 有感于培训机构和高校的区别
  5. java把字符转化为整型_Java开发笔记(三十二)字符型与整型相互转化
  6. OOA、OOD、OOP 代表什么
  7. Android Touchscreen划线曲折不圆润的解决办法
  8. 2021年T电梯修理考试及T电梯修理模拟试题
  9. Android开源框架之Dagger快速入门
  10. [转帖] 越读越有味的句子 绝对经典语录 人生感悟格言