Python 学习笔记(3)对txt文件的读与写操作(上)

目录

1、file 对象

2、open() 方法

3、txt文件的读与写

3.1、写txt文件

3.2、读txt文件

 3.2、在文件末尾续写文件

4、写在最后


1、file 对象

        file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:

序号

方法及描述

1

file.close()

关闭文件。关闭后文件不能再进行读写操作。

2

file.flush()

刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

3

file.fileno()

返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。

4

file.isatty()

如果文件连接到一个终端设备返回 True,否则返回 False

5

file.next()

返回文件下一行。

6

file.read([size])

从文件读取指定的字节数,如果未给定或为负则读取所有。

7

file.readline([size])

读取整行,包括 "\n" 字符。

8

file.readlines([sizeint])

读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

9

file.seek(offset[, whence])

设置文件当前位置

10

file.tell()

返回文件当前位置。

11

file.truncate([size])

截取文件,截取的字节通过size指定,默认为当前文件位置。

12

file.write(str)

将字符串写入文件,返回的是写入的字符长度。

13

file.writelines(sequence)

向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

2、open() 方法

        Python的open()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程中需要用到这个函数,如果文件无法被打开,会抛出ODSError。

        注意:使用open()方法一定要保证关闭文件对象,即调用close()方法。

open(file, mode='r')

        file:文件路径(相对或者绝对路径),mode:对文件的打开方式(可选)

        完整的语法格式为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

        参数说明:

  1. file: 必需,文件路径(相对或者绝对路径)。
  2. mode: 可选,文件打开模式
  3. buffering: 设置缓冲
  4. encoding: 一般使用utf8
  5. errors: 报错级别
  6. newline: 区分换行符
  7. closefd: 传入的file参数类型
  8. opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。

        下图为mode的一些打开方式:

模式

描述

t

文本模式 (默认)

x

写模式,新建一个文件,如果该文件已存在则会报错。

b

二进制模式。

+

打开一个文件进行更新(可读可写)

U

通用换行模式(不推荐)。

r

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

rb

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

r+

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

rb+

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

w

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

wb

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

w+

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

wb+

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

a

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

ab

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

a+

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

ab+

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

3、txt文件的读与写

3.1、写txt文件

        首先定义一个文件名  

FileName = 'w1.txt'

        打开这个文件并且定义打开这个函数的模式;模式比较多(文末会列出来),这边选用几个常用的模式做演示。

# 以文本的形式打开一个指定文件夹(这个时候写入内容都要是str类型的,也就是字符串类型),
# 如果没有就创建,如果有就将原来的内容覆盖
fid = open(Folder + '/' + FileName, 'w')
# 这边赋值三条字符串
S1 = 'hello python'
# 换行操作,转义字符 \n 换行 或者\r 回车
S2 = '\n'   
S3 = 'I am NemoYxc'
# 用write函数将着三个字符串写到指定文件中
fid.write(S1+S2+S3)
# 将这个文件关闭,关闭后文件不能再进行读写操作;如果这一步没有执行,
# 那么我们上面写入的字符串也没有作用。
fid.close()

        看看效果:

3.2、读txt文件

首先,和写文件的时候一样,打开这个文件并且定义打开这个函数的模式;

FileName = 'w1.txt'

fid = open(Folder + '/' + FileName, 'r')

# 全部读取
# 读取文件中所有的数据并返回
r1 = fid.read()

# 读取一行数据并返回(代转义字符\n)
r2 = fid.readline()

# 读取所有行并返回列表
r3 = fid.readlines()

fid.close()

 3.2、在文件末尾续写文件

        前面介绍的方法要么新创建文件写入数据、要么会将原来的数据覆盖写入新的数据,下面介绍一种模式,可以在一个文件中续写数据。

        还是一样,指定文件名打开文件,模式变成了a,表示打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

FileName = 'w1.txt'
fid = open(Folder + '/' + FileName, 'a')
S4 = '\n'
S5 = 'the next is ...'
fid.write(S4+S5)
fid.close()
还是和原来一样,写入数据后关闭。

         可以看到我们成功添加了最后一行字符串在原来的文件内容之后。

4、写在最后

         这一篇文章主要记录了如何向txt文件文件写、读字符串,但是我们有时候处理数据的时候 需要往文件中读或者写float数据,目前博主有两种方法,1、将float数据转换为str,按照上面的方法存到txt中;2、转换成二进制写到文件中;关于第一种方法,直接将float数据转换为字符串的形式就可以了,那么第二种方法博主将在后面一篇文章中与大家分享。

文中对应的代码:

Project_File.rar-嵌入式文档类资源-CSDN文库icon-default.png?t=L9C2https://download.csdn.net/download/yanchuan23/36135222

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NemoYxc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值