【Python开发】8. 文件操作

本文专栏:Python开发笔记  点击查看系列文章

本文主要内容:

      • 1. 读取文件
        • 1.1 文件路径
        • 1.2 读取整个文件
        • 1.3 逐行读取
      • 2. 写入文件
        • 2.1 写入空文件
        • 2.2 写入多行
        • 2.3 内容追加

1. 读取文件

1.1 文件路径

读取文件使用的函数是 open() ,当然要给函数指定 文件的位置,即 文件路径

提供的路径主要有两种路径

  • 相对文件路径:即相对于当前运行的程序所在的目录。
  • 绝对文件路径:文件在计算机中的准确位置。

如果在当前运行的程序HelloWorld.py的同级目录下有一个名为file的文件夹,该文件夹下有一个名为data.txt的文件,那么这个文件路径就可以定义为:

file_path = 'file/data.txt'

当然上面这个路径定义,使用的是相对路径。

如果使用绝对路径,那么应该这样定义:

file_path = 'D:/PycharmProjects/学习阶段/HelloWorld/file/data.txt'

1.2 读取整个文件

已知在上面定义的txt 文件中写入了几行数字,那么可以使用下面这样的代码读取整个文件中的内容:

file_path = 'file/data.txt'
with open(file_path) as file_object:contents = file_object.read()print(contents)

可以将所有的文本打印出来:

1024
2048
4096

1.3 逐行读取

如果想逐行读取文件,那么可以参考下面的示例:

示例:

lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line)lineNum += 1

示例输出:

1行:10242行:20483行:4096

在上面这个示例中,可以看到每一行都多输出了一个空行。这是因为print语句加上一个换行符,文件的每一行也有一个换行符导致的。

可以使用 rstrip() 解决。

示例:

lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line.rstrip()) # 这里加上rstrip()lineNum += 1

示例输出:

1行:10242行:20483行:4096

在以上的示例中,均采用for循环,在读取文件时,即将文件逐行输出。

其实还可以将文件中的每一行内容,存储在一个列表中,然后在使用的时候,直接使用列表。

示例:

lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:lines = file_object.readlines()# 然后通过列表读取数据
for line in lines:print('第' + str(lineNum) + '行:' + line.rstrip())lineNum += 1

输出结果同上。

2. 写入文件

2.1 写入空文件

写入文件时,依旧使用 open() 方法。

其实在 open() 方法中,除了文件路径这个参数外,第二个参数是 文件的模式 。文件的模式主要有:

  • ‘r’:读取模式
  • ‘w’:写入模式
  • ‘a’:附加模式
  • 缺省:只读模式

所以,写入文件,只需要将 open() 方法的第二个实参写为’w’即可。

注意:使用写入模式打开文件时,如果指定的文件不存在,则自动创建。如果该文件已存在,则将清空该文件!!!

示例:

file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('WUT')

将上面的代码运行后,将新建一个 data2.txt 的文件,并写入数据 WUT

注意:Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str() 将其转换为字符串格式。

2.2 写入多行

多写几行write语句,即可写入多行数据。

示例:

file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('I love WUT')file_object.write('I love CST')

上面这个示例将两个句子写入了data2.txt文件中。

这时,打开data2.txt,看到数据是这样的:

I love WUTI love CST

其实想让其单行显示,只需要在每个写入语句末尾加上换行符。

示例:

file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('I love WUT\n')file_object.write('I love CST\n')

这时,打开data2.txt,看到数据是这样的:

I love WUT
I love CST

这符合我们的预期。

2.3 内容追加

看到这里,内容追加也就很简单了。

直接使用 附加模式 打开文件,即可进行内容的追加。

接着上面的data2.txt文件,这次以附加模式打开这个文件,然后再写入几行数据:

file_path = 'file/data2.txt'
with open(file_path, 'a') as file_object:file_object.write('Zhang San love WUT\n')file_object.write('Li Si love WUT,also\n')

这时,即可将上面的内容追加到data2.txt文件中。

参考文献:

[1] Python编程:从入门到实践

如果有帮助,感谢动动小手点个赞 (๑•̀ㅂ•́)و✧❤


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部