Python 文件读写操作-Python零基础入门教程

摘要:
目录1。打开Python文件open 2。Python文件关闭3。读取Python文件read1。读取功能2。readline函数3。读取线功能4。Python文件write1。写函数语法2。写函数用例5。Python文件偏移量见1。搜索功能2。告诉功能3。搜索/单元功能示例代码6。关键摘要7。猜你喜欢零基础Python学习路径推荐:Python学习目录˃˃Python基本介绍除了通过打印功能将数据输出到控制台外,hon还可以通过读取/写入文件将数据读取/输出到磁盘文件。文件读取和写入被称为I/O操作。

目录

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python 除了通过 print 函数将数据输出到控制台,也可以通过读 / 写文件的方式读取 / 输出到磁盘文件中,文件读写简称 I / O 操作。Python 文件 I / O 操作一共分为四部分:

  • 打开(open)
  • 读取(read)
  • 写入(write)
  • 关闭(close)

Python 文件读写操作-Python零基础入门教程第1张

一.Python 文件的打开 open

Python 中打开文件使用函数 open,该函数返回文件句柄,具体使用方法如下:

file = open("文件名","打开文件模式")

# 示例代码:
# 打开d:/1.txt文件,如果d盘没有这个文件,会自动在d盘创建1.txt的空白文件,file是返回的文件句柄供读/写/关闭文件操作
file = open("d:/1.txt","wb")

其中,打开文件模式有以下几种类型

Python 文件读写操作-Python零基础入门教程第2张

二.Python 文件的关闭 close

文件在打开读写之后记得要有关闭操作,就好比蹲完坑得擦屁股,关闭文件使用 close 函数。

注意:文件关闭之后,不能在继续对文件读写操作,如果需要读写操作需要重新 open 打开文件。

close() # 关闭文件

Python 文件读写操作-Python零基础入门教程第3张

三.Python 文件的读取 read

文件打开之后,可以通过返回的文件句柄读取文件中的内容,文件读取有以下几个函数:

1.read 函数

'''
参数:
     count - 表示需要读取的文字长度, conut 是缺省参数,如果没有设置 count 值,默认读取整个文件所有内容,该函数返回读取到的内容;

返回值:返回读取到的内容; 文件读取返回的内容并非字符串 str 类型,而是字节类型 bytes 类型,'b' 前缀代表的就是 bytes .
'''

read( [count] )

2.readline 函数

//读取文件一行数据,返回读取的内容

readline()

3.readlines 函数

//读取文件的所有行内容,返回读取的所有内容,注意:返回的数据类型是列表,列表中每个数据都是文件中的一行数据

readlines()

**注意:文件读取返回的内容并非字符串 str 类型,而是字节类型 bytes 类型,’b’ 前缀代表的就是 bytes . **

如果想将 bytes 类型转为字符串直接使用 bytes.decode 方法即可,decode 方法默认使用 UTF-8 编码;假如 d:/1.txt 中的内容如下:

@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

文件读取的三种方式示例代码如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""


# 方法一:
print("方法一:使用 read() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
contents = file_object.read() # 默认读取所有内容

# 读取文件内容,如果文件中含有中文需要decode()解码,否则中文无法显示
print(contents)
print("---"*20)
# 使用decode()解码中文,默认解码格式为utf-8
print("使用decode()函数解码中文:")
print(contents.decode())
file_object.close()

print("***"*20)


# 方法二:
print("方法二:使用 readline() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
while True:
    contents = file_object.readline()
    print(contents.decode())# 使用decode()解码中文,默认解码格式为utf-8
    if len(contents) == 0: # 读取内容长度为0,读取结束
        break
file_object.close()

print("***"*20)


# 方法三:
print("方法三:使用 readlines() 函数读取txt内容")
file_object = open("d:/1.txt","rb")
# readlines() 返回列表,一行数据就是列表中的一个元素
contents = file_object.readlines()
# 遍历列表
for content in contents:
    print(content.decode())# 使用decode()解码中文,默认解码格式为utf-8
file_object.close()



'''
输出结果:

方法一:使用 read() 函数读取txt内容

b'@Blog(xe4xb8xaaxe4xbaxbaxe5x8dx9axe5xaexa2xe5x9cxb0xe5x9dx80): www.codersrc.com
@WeChat Official Account(xe5xbexaexe4xbfxa1xe5x85xacxe4xbcx97xe5x8fxb7)xefxbcx9axe7x8cxbfxe8xafxb4python
@Motto:xe4xb8x8dxe7xa7xafxe8xb7xacxe6xadxa5xe6x97xa0xe4xbbxa5xe8x87xb3xe5x8dx83xe9x87x8cxefxbcx8cxe4xb8x8dxe7xa7xafxe5xb0x8fxe6xb5x81xe6x97xa0xe4xbbxa5xe6x88x90xe6xb1x9fxe6xb5xb7xefxbcx8cxe7xa8x8bxe5xbax8fxe4xbaxbaxe7x94x9fxe7x9ax84xe7xb2xbexe5xbdxa9xe9x9cx80xe8xa6x81xe5x9dx9axe6x8cx81xe4xb8x8dxe6x87x88xe5x9cxb0xe7xa7xafxe7xb4xafxefxbcx81
'
------------------------------------------------------------
使用decode()函数解码中文:
@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

************************************************************
方法二:使用 readline() 函数读取txt内容

@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!


************************************************************
方法三:使用 readlines() 函数读取txt内容

@Blog(个人博客地址): www.codersrc.com
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
'''

四.Python 文件的写入 write

1.write 函数语法

文件写入可通过函数 write 完成,使用比较简单,先看看语法:

//直接传入 bytes 类型的字符即可,'b' 前缀代表的就是bytes.

write( [bytes] )

2.write 函数使用案例

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""


file_object = open("d:/2.txt","wb")

# '
' 是文件I/O中的换行符,写完文件之后,自动换行
file_object.write(b"1234567
")
# 注意单引号和双引号的配合使用
file_object.write(b"file_object.write(b'sad')
")
file_object.write(b"python 
")

file_object.close()


'''
代码执行完成后,d:/2.txt文件内容如下:

1234567
file_object.write(b'sad')
python
'''

注意:写入方式 ‘wb’ ,每次写入文件都会覆盖上一次的内容,即写入之前的内容会被清空;

五.Python 文件偏移 seek

有人看了上面 read 函数的示例代码可能会觉得频繁的打开和关闭文件会比较麻烦。那么仅仅打开和关闭文件一次,通过文件的偏移也能完成上述功能,文件的偏移使用** seek** 函数 。一般而言,seek 函数和 tell 函数都搭配使用

1.seek 函数

'''
参数:
     offset - 表示相对whence 偏移多少个字节;
     whence - 表示偏移的位置,0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起;

'''

seek([offset],[whence])

2.tell 函数

// 相对于文件开始位置,当前偏移的字节数

seek([offset],[whence])

小窍门:tell 函数也可以用来计算整个文件的 bytes 长度;

3.seek / tell 函数示例代码

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python 文件读写操作.py
@Time:2021/04/17 10:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

file_object = open("d:/2.txt","rb")

# 获取当前的文件偏移,由于还没开始读取内容,偏移量等于 0
count = file_object.tell()
print(count)
# 读取文本所有数据内容,文件自动偏移到文件末尾
contents = file_object.read()
# 获取整个文件的偏移量 ,实际上就是文件内容的大小
count = file_object.tell()
print(count)
# 将文件指针偏移到文件开始位置
file_object.seek(0,0)
# 读取一行数据,按道理讲应该是获取第一行数据
contents = file_object.readline()
print(contents.decode())
# 获取当前偏移量
count = file_object.tell()
print(count)
# 继续读取一行数据
contents = file_object.readline()
print(contents.decode())
# 获取当前偏移量
count = file_object.tell()
print(count)
file_object.close()


'''
输出内容:

0
474
python教程 - 猿说python : 第一行数据 www.codersrc.com
68
python教程 - 猿说python : 第二行数据 www.codersrc.com
136
'''

注意:一般只要调用 read / readline / readlines / write 等函数,文件指针会自动发生偏移。

六.重点总结

  • 1.read 函数可以设置读取指定的长度,例如:只读取 10 个字符 read(10);
  • 2.readlines 返回值是列表 list,并非 bytes 类型,而列表中的每一个元素都是文件中的一行数据,类型是 bytes 类型;
  • 3.如果文件读取的内容含有中文,需要通过函数 decode 方法解码转为字符串,decode 方法默认为 UTF-8 解码;
  • 4.文件 open 之后记得 close ,养成良好的书写习惯;

七.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python 文件读写操作

本文由博客 - 猿说编程 猿说编程 发布!

免责声明:文章转载自《Python 文件读写操作-Python零基础入门教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]vim常用命令汇总线程池如何传递ThreadLocal下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python的变量

目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开存储的 数据 保存在内存中的一个位置 变量 中保存着数据在内存中的地址 变量 中 记录数据...

Python基础24_正则表达式,re模块,

 一. 正则表达式     正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。     正则表达式由普通字符和元字符组成, 普通字符包含大小写字母, 数字. 在匹配普通字符的时候我们直接写就可以了  ...

Python 调试

【简介调试工具】 pdb使用如下代码就相当于添加断点了:import pdb    pdb.set_trace()  #设置断点的地方,放置于程序中 ipdb相对于python,我们更趋向于ipython,有漂亮的颜色,和<tab>补全提示,以及bash混用; 相对于python内置的pdb,ipdb的优势也正在于此,其实就是对ipython的...

如何比较版本号--Python实现

需求 在写一个程序Django项目的setup程序(初始化环境,比如设置PIP源,安装该项目依赖的各种模块等操作)遇到一个系统当前模块版本和项目所需版本的比较然后给出建议是忽略还是升级。我的要求是不仅仅比较版本号是否一致以及返回最大版本号,而且还要给出建议是升级(当前系统包的版本号小于项目需要的版本号)还是忽略(当前系统包的版本号大于等于项目需要的版本号)...

攻防世界-crypto-easychallenge(.pyc反编译)

进入题目后下载附件,发现是一个.pyc文件。 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,运行加载的速度会有所提高;另一反面,把py文件编译为pyc文件,从而可以实现部分的源码隐藏,保证了python做商业化软件时的安全性 用uncompyle6这个第三方python反编译器来进行反编译。...

python输入年月日,得出已经过了多少天?

#-*- coding: UTF-8 -*- importtime defWhat_day_of_the_year(inputTime): #函数,判断字符串是否为数字 defis_number(s): try: float(s) returnTrue exceptV...